У меня есть то, что я считаю странной дилеммой, хотя YMMV.
Я использую файл макета, который описывает каждую строку / строку в ListView (ничего особенного в этом нет).У меня есть идентификатор, назначенный каждому, например:
android: id = "@ + id / checkBox1" android: id = "@ + id / checkBox2" android: id = "@ + id / checkBox3"
android: id =" @ + id / contactLabel "// a TextView
Теперь это, кажется, не имеет смысла, так как эти идентификаторы должны быть уникальными, так каков идентификатор второгострока?То есть, если «строка 1» учитывает указанные идентификаторы checkbox1, checkbox2, checkbox3 и contactLabel, какими будут идентификаторы «строки 2»?
Мне любопытно, но мне также нужно знать, потому чтоЯ хочу сохранить значения флажков в объекте SharedPreferences.
Кто знает, как обойти это?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Обновление
Первое, что мне нужно решить, это как реагировать на нажатие на ListView.Это моя текущая головоломка, связанная со всем этим:
ListView не знает, что на него нажали, или не скажет мне
Я добавил это событиеобработчик моего ListActivity:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
}
... но он не вызывается.Я нажимаю на контакты, которые отображаются, но не идти.
Я тоже попробовал это так:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Click ListItem Number " + position, Toast.LENGTH_LONG)
.show();
}
});
... все еще нет радости ... Я установил контрольные точки на обеих линиях "Тост", и они никогда не достигаются.
Я прочитал здесь:
http://www.vogella.de/articles/AndroidListView/article.html#listsactivity_layout
... что, "Если вам нужно больше просто ListView в вашей деятельности, вы можете использовать свой собственный макет для ListActivity.«
... что я и делаю, потому что я добавляю заголовок и нижний колонтитул в дополнение к просмотру списка.
Далее говорится:« В этом случае ваш макет должен иметь ListView.элемент с атрибутом android: id, установленным в @android: id / list. "
Итак, я добавил это в свой макет:
... но это не даетразница так или иначе.