私のリストビューには、TreeMap を使用して構築したカスタム アダプターがあり、次のように getView メソッドを定義しました。クリック時にリストビューの特定のテキストビューでテキストを打ち消そうとしていますが、特定の文字パターン (y@y) を含むテキストビューのみが打ち消されます。ただし、リストビューの 1 つの行をクリックすると、他の行に三振効果が発生します。
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.chklistlayout, parent, false);
}
TextView textView = ((TextView) convertView.findViewById(R.id.textView1));
TextView imageview = ((TextView) convertView.findViewById(R.id.textView2));
textView.setText(values[position]);
imageview.setText(mValues[position]);
String s = mValues[position];
if (s.contains("y@y")) {
System.out.println("In if of getview");
System.out.println(s);
imageview.setPaintFlags(imageview.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else {
}
return convertView;
}
}
静的ホルダー クラスを使用してホルダー パターンも使用してみましたが、問題は解決しないようです。ポインタはありますか?