我有一个ListActivity和在我的列表中我有非常复杂的listitems与多个ImagesViews TextViews和按钮。当我点击一个按钮时,我想编辑一些textviews并改变一些背景颜色。我的实现工作,但只有当我点击的按钮是在第一行可见。我使用getChildAt()
来抓取其中一个可见的行,但我需要知道要抓取哪一行。如何知道android列表中的哪一行按下按钮?
public void onClick(View v){
System.out.println("Something got clicked");
if(v.getId() == R.id.lovebutton){
MainListItem i = mainAdapter.getItem(listView.getFirstVisiblePosition());
i.loved=true;
i.loves++;
View view;
view = listView.getChildAt(0);
//view = listView.getChildAt(1);
((TextView) view.findViewById(R.id.lovecount)).setText(String.valueOf(i.loves));
view.findViewById(R.id.lovebutton).setBackgroundColor(Color.parseColor(i.brandLoveColor));
((ImageView)view.findViewById(R.id.lovebutton)).setImageResource(R.drawable.lovewhite);
}}
你为什么不使用BaseAdapter和分别处理每个视图....? –
ArrayAdapter和BaseAdapter有什么区别?我目前使用ArrayAdapter – mpatten
是ListView的按钮部分吗? –