ListActivityがあり、リストには、複数のImagesViews、TextViews、およびButtonsを持つ非常に複雑なlistitemsがあります。ボタンをクリックすると、いくつかのテキストビューを編集し、いくつかの背景色を変更したいと思います。私の実装は機能しますが、クリックしたボタンが表示されている最初の行内にある場合に限ります。getChildAt()
表示されている行の1つを取得するために使用していますが、どの行を取得するかを知る必要があります。
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);
}}