У меня есть макет элемента, подобный этому, и установите фон с помощью селектора элементов
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@drawable/itemselector"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/message_row_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/message_row_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:textColor="@color/black" />
itemselector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@color/yellow" />
<item
android:state_selected="true"
android:drawable="@color/green" />
<item
android:drawable="@color/white" />
</selector>
У меня есть ListView, который будет содержать некоторые элементы. Затем я использовал setOnItemClickListener(), но он не работает. Я обнаружил, что если я удалю флажок в элементе, все будет okey.
В чем была проблема между флажком и слушателем здесь? Можете ли вы дать мне какое-то решение?
Обновление: это код слушателя
mainListView.setAdapter(messageAdapter);
mainListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Message p = (Message) arg0.getItemAtPosition(arg2);
Toast.makeText(TarsiusActivity.this, p.getTitle(), Toast.LENGTH_LONG);
Log.i("Item Clicked", p.getTitle());
}
});
ps: Я хочу сделать почтовый ящик как gmail на android. Каждая строка имеет флажок, и пользователь может нажать на элемент, если он хочет увидеть сообщение