У меня есть ListView с SimpleCursorAdapter.В макете использовался LinearLayout, но при чтении руководств по потреблению памяти для сложных (вложенных) макетов я переключился на RelativeLayout, и мне удалось настроить макет именно так, как я хочу.
Теперь есть одингалтель.В эмуляторе я не могу щелкнуть пункты списка.Кажется, что элементы - это одна большая кнопка «без кнопки».Однако, если я использую стрелки эмулятора и выбираю элемент списка (выделяет его) и нажимаю кнопку, он работает нормально.
Почему я не могу "щелкнуть" по элементам списка, поскольку я переключился на RelativeLayout?
Вот XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/locationName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Junk text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/numStores"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/locationName"
android:text="Junk text #1: 117"
android:textSize="10dp" />
<TextView
android:id="@+id/numItems"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/numStores"
android:text="Junk text #2: 42"
android:textSize="10dp" />
</RelativeLayout>
Я даже пытался android:clickable="true"
для RelativeLayout, но безрезультатно.
EDIT Код для onClick выглядит следующим образом:
listItems.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
int countyID = cursor.getInt(cursor.getColumnIndex(LocationDB.C_ID));
int numItems = cursor.getInt(cursor.getColumnIndex(LocationDB.C_NUM_ITEMS));
int numStores = cursor.getInt(cursor.getColumnIndex(LocationDB.C_NUM_STORES));
String countyName = cursor.getString(cursor.getColumnIndex(LocationDB.C_NAME));
String foo = String.format(TAG + "Clicked ID #%d (%s), stores = %d, items = %d", countyID, countyName, numStores, numItems);
Log.i(LOG_TAG, foo);
// Show the item in a new activity
Intent apan = new Intent(avBase, Browser.class);
apan.putExtra("countyID", countyID);
startActivity(apan);
}
});
РЕДАКТИРОВАТЬ 2
Код теперь проверен на моем телефоне, и я получаю ту же ошибку;не может щелкнуть элементы при использовании RelativeLayout.