我有一个 ListActivity,在我的列表中,我有非常复杂的列表项,其中包含多个 ImagesViews TextViews 和 Buttons。当我单击一个按钮时,我想编辑一些文本视图并更改一些背景颜色。我的实现有效,但前提是我单击的按钮位于可见的第一行内。我getChildAt()
用来抓取其中一个可见行,但我需要知道要抓取哪一个。
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);
}}