首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓图片库图像适配器onItemClickListener不被调用和其他问题

安卓图片库图像适配器onItemClickListener不被调用和其他问题
EN

Stack Overflow用户
提问于 2012-10-12 02:17:07
回答 1查看 3.1K关注 0票数 3

我正在使用下面的代码来触发单击图片库中的图像

代码语言:javascript
复制
                holder.imgPostImagesGallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    //handle clicks
                    @Override
                    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                        System.out.println("Iamge adapter clicked");
                        /*Show ImageViewerfragment*/
                        Intent intent = new Intent(getActivity(), ImagePagerActivity.class);
                        //Generate Image Array first
                        String[] urls=new String[1];
                        urls[0]=feedsTableList.get(position).post_content.images.get(position).toString();
                        intent.putExtra(Extra.IMAGES, urls);
                        intent.putExtra(Extra.IMAGE_POSITION, 0);
                        startActivity(intent);  
                    }                       
                });

图像适配器代码

代码语言:javascript
复制
public class ImageAdapter extends BaseAdapter {
    public ArrayList<String> images;
    private Context mContext;       
    public ImageAdapter(Context c,ArrayList<String> arrayImages) {
        mContext = c;
        images=arrayImages;
    }

    public int getCount() {
        return images.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }
    //http://www.edumobile.org/android/android-development/image-gallery-example-in-android/
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView = new ImageView(mContext);
        imageView.setLayoutParams(new Gallery.LayoutParams(320, 320));          
        imageView.setBackgroundResource(R.drawable.black_button);
        imageLoader.displayImage(images.get(position), imageView, options);
        //Add tap listeners
        imageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });
        return imageView;

    }



}

图库运行良好,但点击/点击图像时什么也不会发生。

而且,我似乎有一个问题,画廊滚动,这似乎不对。滚动滞后,有时根本不滚动。我将此与SlidingMenu库一起使用。

更新

正如mukesh所指出的,我有两个点击事件,我错过了。但是移除它们也没有帮助;但是添加我自己的点击侦听器也有帮助。

代码语言:javascript
复制
//click listener for gallery
private class galleryPhotoClickListener implements OnItemClickListener{    
    private Context context;

    public galleryPhotoClickListener(Context context){
        this.context = context;
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        Intent intent = new Intent(getActivity(), ImagePagerActivity.class);
        //Generate Image Array first
        String[] urls=(String[]) feedsTableList.get(position).post_content.images.toArray();
        urls[0]=feedsTableList.get(position).post_content.images.get(position).toString();
        intent.putExtra(Extra.IMAGES, urls);
        intent.putExtra(Extra.IMAGE_POSITION, 0);
        startActivity(intent);  

    }

}   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-12 03:31:08

只使用一个1或2个

代码语言:javascript
复制
1.  holder.imgPostImagesGallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    //handle clicks
                    @Override
                    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                        System.out.println("Iamge adapter clicked");
                        /*Show ImageViewerfragment*/
                        Intent intent = new Intent(getActivity(), ImagePagerActivity.class);
                        //Generate Image Array first
                        String[] urls=new String[1];
                        urls[0]=feedsTableList.get(position).post_content.images.get(position).toString();
                        intent.putExtra(Extra.IMAGES, urls);
                        intent.putExtra(Extra.IMAGE_POSITION, 0);
                        startActivity(intent);  
                    }                       
                });



    or



  2. imageView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                }
            });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12851320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档