我有一個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的按鈕部分嗎? –