2012-03-15 6 views
1

リストビューは、CheckedTextViewを使用するtextviewレイアウトとしてandroid.R.layout.simple_list_item_multiple_choiceを使用して20個のアイテムで構成されています。私はこれを行うとき、それは確認されます特定のcheckedtextview、だけでなく、チェックされ、いくつかの他のものだけではない、しかしListView enable checkedTextView anomaly

public void onListItemClick(ListView parent, final View v, int pos, long id) { 
    ((CheckedTextView) v).setChecked(true); 
} 

:私が選択した際にチェックボックスがで達成、チェックすることにしたいです。

答えて

0

はthis-

((CheckedTextView)parent.getChildAt(pos)).setChecked(true); 
+0

これ以前に試しましたが、どういうわけか奇妙な動作が表示されます。リスト全体に20個の項目があっても、getChildCount()は9を返します。したがって、10番目以上の項目をクリックすると、NULLポインタ例外が発生します – Arjun

0

カスタムアダプタを作成することによって、これを達成することができます試してみてください。 BaseAdapterクラスを拡張する新しいクラスを作成するだけです。 これはあなたが getViewメソッドのmethod.belowを変更する必要が使用しているレイアウトで機能するために

はスニペット

パブリックビューgetViewメソッド(int型の位置、表示convertView、のViewGroupの親) { ViewHolderホルダーです;

if (convertView == null) 
{ 
    convertView = mInflater.inflate(android.R.layout.simple_list_item_multiple_choice, null); 

    holder = new ViewHolder(); 
    holder.checkbox = (CheckedTextView) convertView.findViewById(android.R.id.text1); 

    convertView.setTag(holder); 
} 
else 
{ 
    holder = (ViewHolder) convertView.getTag(); 
} 

    holder.checkbox.setText(tasks.get(position).getName()); 
    holder.checkbox.setChecked(tasks.get(position).isCompleted()); 

    return convertView; 

} 

static class ViewHolder { 
    CheckedTextView checkbox; 

} 

希望すると助かります。

+0

ありがとう、私はかなり初心者ですので、カスタムアダプターを使用します。これがうまくいきたいです。それでも、複数のチェックボックスがチェックされているのは、そのうちの1つだけがクリックされた理由です。 – Arjun

+0

これはうまくいきますが、getViewは、ビューを再度作成する必要があるとき(その特定の行がスクロールアウトしてから戻るとき)にのみ呼び出されます。私が望むのは、リストアイテムをクリックすると、そこにチェックインされます。 – Arjun

関連する問題