私は、ListActivityを継承するアクティビティを持ち、XMLレイアウトとカスタムアダプタクラスを使用してリストを作成します。それはすべて、うまくレンダリングし、期待通りです。行XMLには、チェックボックスが含まれています。ListActivityのチェックボックスはリンクされているようです。どうして?どうすれば修正できますか?
今、奇妙なことは、チェックボックスが非常に多くの行にリンクされているように見えることです。つまり、行0のチェックボックスをチェックすると、行8,18,28,38,48などのチェックボックスもチェックされます。
なぜ、どうすればよいでしょうか?
該当する場合は、使用可能な場合にビューを再利用して再利用します。また、チェックされているものの1つを画面の上部にスクロールすると、次にチェックされるのは、画面の下部にある2番目のものです。以下は
私getView
コードです:あなたは、あなたが実際に(そう基本的にクリーンアップ)、その中にすべてのコントロールの状態を設定する必要があり、あなたのビューを再利用する場合
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)
mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.contacts_row, null);
}
cb.GroupMembership.moveToPosition(position);
long cid = cb.GroupMembership.getLong(0);
String clk = cb.GroupMembership.getString(1);
String cnm = cb.GroupMembership.getString(2);
long pid = cb.GroupMembership.getLong(3);
ImageView bdg = (ImageView) v.findViewById(R.id.contactBadge);
Uri pic = GroupsLib.getContactPhotoUri(pid);
if (pic == null) {
bdg.setImageResource(R.drawable.contactg);
} else {
bdg.setImageURI(pic);
}
((TextView) v.findViewById(R.id.contactName)).setText(cnm);
return v;
}
アダプター( 'getView')コードをポストしますが、おそらくViewリサイクルの問題です。 – dmon