将onClickListener添加到listview项目

时间:2011-07-29 00:30:49

标签: java android listview

我有一个缩略图和文本的列表视图,彼此相邻。 我试图找出如何为每个列表项添加onClicklistner,以便当用户选择文本或缩略图时,将弹出完整的图像。下面是我的列表对象和适配器以及lazyAdapter代码。

MainActivity:

list=(ListView)findViewById(R.id.list);
adapter=new LazyAdapter(this, mStrings, mImages);
list.setAdapter(adapter);

LazyAdapter:

  public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = inflater.inflate(R.layout.item, null);

    TextView text=(TextView)vi.findViewById(R.id.text);;
    ImageView image=(ImageView)vi.findViewById(R.id.image);
    text.setText(image_name[position]);
    imageLoader.DisplayImage(data[position], activity, image);
    return vi;
}

EDIT 这就是我最终使用的。

                list.setOnItemClickListener(new OnItemClickListener() {
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
                        Toast.makeText(MainActivity.this, "Show Full Image", Toast.LENGTH_LONG).show();
                    }
                });

2 个答案:

答案 0 :(得分:4)

您可以在mStrings中使用mImagesOnItemClickListener。从您的LazyAdapter假设它们是数组。也许你可以尝试这样的事情。

list.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        String text = mStrings[position];
        YourImageClass img = mImages[position];
        Intent i = new Intent(MainActivity.this, ShowFullImageActivity.class);
        i.putExtra("TEXT", text);
        i.putExtra("IMAGE", img); // <-- Assumed you image is Parcelable
        startActivity(i);
    }
}

答案 1 :(得分:2)

有什么可以帮助您实施AdapterView.OnItemClickListener

可在此处找到更多信息http://developer.android.com/guide/topics/ui/binding.html

请注意,这用于ListView中的每一行,而不是每行中的单独TextView或ImageView。