Android по умолчанию XML-макет не загружается - PullRequest
1 голос
/ 21 ноября 2011

Я пытаюсь создать ListActivity с флажками, используя один из встроенных макетов Android, android.R.layout.simple_list_item_multiple_choice. Для фона я выбираю список в приватном AsyncTask, а затем вызываю адаптер следующим образом:

listActivity.setListAdapter(new ArrayAdapter<String>(listActivity, 
    android.R.layout.simple_list_item_multiple_choice, mDisplayList));

Однако, когда я запускаю свой код, ListView отображается с list_item.xml, который я использую для всех других ListViews в моем проекте. Есть идеи, почему это происходит?

Ответы [ 3 ]

1 голос
/ 23 ноября 2011

Причина, по которой правильный XML-макет не использовался, заключалась в том, что мой AsyncTask расширял мой (другой) пользовательский AsyncTask, который использовал другой XML-макет, и я оставил в этой строке.

super.onPostExecute();

, который был в конце метода, поэтому унаследованный макет превзошел тот, который я хотел.

0 голосов
/ 21 ноября 2011

Когда вы используете Android R таким образом: android.R.layout... чем у вас уже есть пакет android перед именем класса R.

Если вы явно указали имя класса с полным именем пакета, вам также не нужно его импортировать.

Это тот случай, когда у вас одно и то же имя класса из разных пакетов, что часто случается, когда вы используете android.R и сгенерированный вами класс R.

0 голосов
/ 21 ноября 2011

Вам не нужно импортировать android.R.layout, поскольку вы вызываете его явно, используя android.R.layout.simple_list_item_multiple_choice.

Этот пост может быть полезен.

Обновление от комментария

Трудно понять, в чем проблема.Вы пытались очистить свой проект и восстановить?Иногда android int id просто делает странные вещи, если вы не очищаете проект и не восстанавливаете файлы gen.Но испортить внутренние ссылки Android крайне маловероятно… Если это не сработает, у вас может быть другой загрязняющий setListAdapter где-то еще, но это трудно сказать без вашего полного проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...