私は自分のアダプタを定義したので、私は複雑な行レイアウト( “2つのimageViews、3
TextViews”)があります。私はクリック時にtextViewsの色を変更したい!私は内側のクラスの内部から参照されていない最終的な変数の問題に直面したこの問題の周りに任意のひねりがありますか?
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
if(convertView==null)
{ minflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = minflater.inflate(R.layout.list_item2, null);
holder.title = (TextView) convertView.findViewById(R.id.rowtext1);
holder.note = (TextView) convertView.findViewById(R.id.rowtext2);
holder.date = (TextView) convertView.findViewById(R.id.rowtext3);
holder.course= (TextView) convertView.findViewById(R.id.rowtext4);
holder.icon = (ImageView) convertView.findViewById(R.id.rowimage1);
holder.read = (ImageView) convertView.findViewById(R.id.rowimage2);
convertView.setOnClickListener(new OnClickListener() {
private int pos = position;
@Override
public void onClick(View v) {
numberOfClicks++;
//Heres the problem
holder.title.setTextColor();
if(pos==0 && numberOfClicks % 2 ==1 )
v.setBackgroundResource(R.drawable.stoprow);
else if (pos==0 && numberOfClicks % 2 !=1 )
v.setBackgroundResource(R.drawable.toprow);
else if (pos==getCount()-1 && numberOfClicks % 2 !=1 )
v.setBackgroundResource(R.drawable.bottomrow);
else
v.setBackgroundResource(R.drawable.smiddlerow);
}
});
convertView.setTag(holder);
} else {
//Get the ViewHolder back to get fast access to the TextView
//and the ImageView.
holder = (ViewHolder) convertView.getTag();
}
ベストアンサー
私も同じ問題を抱えており、ついに私は次のような解決策を得ました
final TextView tempView = holder.title;
onclickよりも:
title.setTextColor();
Refer this link for further reference
Imageview in Listview cannot change at runtime in android