ListView:如何在点击后更改单元格?

时间:2013-07-10 10:09:07

标签: android listview cell

我有一个列表视图,包含不同类型的单元格,我使用ArrayAdapter来执行此操作。

private class MyAdapter extends ArrayAdapter<String>
{   
    public MyAdapter(Context context, int resource, int textViewResourceId, String[] objects)
    {
        super(context, resource, textViewResourceId, objects);
    }

    @Override
    public View getView(int position, View view, ViewGroup parent)
    {
        View viewCE = inflater.inflate(R.layout.my_cell, parent, false);
        ((TextView) viewCE.findViewById(R.id.txt_cell)).setText(adapter.getItem(position));
        view = viewCE;
        return view;
    }
}

my_cell包含一个ImageView,我想要做的是在用户点击单元格时更改此ImageView的图像。

我已经在我的代码中添加了一个实现OnItemClickListener的私有类及其方法onItemClick(),但后来我完全不知道该怎么做......

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

onItemCLick回调中,参数view正好是包含imageView的视图,因此您可以通过ID找到它然后更改它,示例代码如下:

list.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        ImageView image = ((ImageView) viewCE.findViewById(R.id.your_image_id));
        //do something by yourself
    }
}

答案 1 :(得分:0)

如果要在ImageView上处理click事件的方式不同于onClick of list项,则可以将单独的onClickListener添加到Imageview,如下所示:

imageView.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            // Change the image

        }

    });