Android ListView:单击后如何更改单元格?
我有一个列表视图,包含不同类型的单元格,我使用ArrayAdapter来实现Android ListView:单击后如何更改单元格?,android,listview,cell,Android,Listview,Cell,我有一个列表视图,包含不同类型的单元格,我使用ArrayAdapter来实现 private class MyAdapter extends ArrayAdapter<String> { public MyAdapter(Context context, int resource, int textViewResourceId, String[] objects) { super(context, resource, textViewResour
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;
}
}
私有类MyAdapter扩展了ArrayAdapter
{
公共MyAdapter(上下文上下文、int资源、int textViewResourceId、字符串[]对象)
{
超级(上下文、资源、textViewResourceId、对象);
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图)
{
View viewCE=充气机。充气(R.layout.my_单元格,父单元格,false);
((TextView)viewCE.findviewbyd(R.id.txt_cell)).setText(adapter.getItem(position));
视图=视图;
返回视图;
}
}
my_cell
包含一个ImageView,我要做的是在用户单击单元格时更改此ImageView的图像
我已经在代码中添加了一个私有类,该类使用其方法onItemClick()
实现了onItemClick listener
,但是我完全不知道该怎么做
感谢您的帮助。如果您希望以不同于onClick of列表项的方式处理ImageView上的单击事件,可以向ImageView添加单独的onClick侦听器,如下所示:
imageView.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// Change the image
}
});
在
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
}
}
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
ImageView image=((ImageView)viewCE.findviewbyd(R.id.your_image_id));
//自己做点什么
}
}
输入完整的代码。我在适配器中看不到任何imageview。这是因为当我创建视图时,使用的图像总是相同的,所以我在XML文件中定义它,而不是在适配器中。