リストビューにチェック可能なアイテムがあります
public class CheckableMessageOut extends RelativeLayout implements Checkable{
public CheckableMessageOut(Context context) {
super(context);
}
public CheckableMessageOut(Context context, AttributeSet attrs) {
super(context, attrs);
}
LinearLayout wrapper;
private boolean checked = false;
@Override
public void setChecked(boolean b) {
if (checked!=b){
if (b){
wrapper.setBackgroundResource(R.drawable.label_msg_out_selected);
} else {
wrapper.setBackgroundResource(R.drawable.label_msg_out);
}
}
checked = b;
}
私はこのように使用します
<ru.kurganec.vk.messenger.ui.helper.CheckableMessageOut xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:id="@+id/wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/label_msg_out"
android:orientation="vertical">
<TextView
android:id="@+id/text_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ad"
/>
<LinearLayout
android:id="@+id/list_attach"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/text_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/wrapper"
android:text="06.06"/>
</ru.kurganec.
vk.messenger.ui.helper.CheckableMessageOut>
プログラムで@id/ list_attachにビューを追加すると、何かが発生することがあります。ビューが添付されているアイテムを選択できません。
全体こんな感じです。
選択されたと言うことで、私はチェックされたことを意味します。このフィールドを設定しましたmList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
アイテムを選択できないのはなぜですか?
アップデート
フラグメントクラスhttp://pastebin.com/BZRhahbiこれは私のアプリの主要部分なので、「神クラス」のアンチパターンのように見えます
アダプタークラスhttp://pastebin.com/Av7ntUmG
アダプターのアイテムクラスhttp://pastebin.com/MdYc7Ksw