2013-02-12 5 views
0

В моем основном действии есть макет, содержащий ListView и несколько других элементов. Я хотел бы назначить ему ListAdapter. Я следил за инструкциями, показанными здесь: http://www.vogella.com/articles/AndroidListView/article.htmlНазначить ListAdapter ListView в макете

Как я могу сообщить адаптеру, что в макете моей деятельности есть ListView, и назначить его ему? Когда я пытаюсь запустить приложение как есть, он выходит из строя с исключением из среды выполнения, указав, что в моем макете должен быть список Android по умолчанию.

Спасибо!

ответ

1

Если ваша деятельность наследуется от ListActivity, вам не нужно вручную информировать адаптер о значении ListView.

Но для того, чтобы сделать это, ListView в своей деятельности должен выглядеть следующим образом

<ListView android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 

потому documentation says

ваш собственный взгляд должен содержать объект ListView с идентификатором «@android: идентификатор/list "(или список, если он находится в коде)

+0

Теперь я чувствую себя глупо. Спасибо за простой, эффективный ответ! – Argus9

0

Когда я пытаюсь запустить приложение как есть, он выходит из строя с использованием исключения времени выполнения, заявляя, что в моем макете должен быть список по умолчанию в Android-списке.

Похоже, вы используете ListActivity и вызываете setContentView(). В макете, который вы передаете setContentView() вы сусла есть ListView со следующим атрибутом:

<ListView 
    android:id="@android:id/list" 
    ... /> 

Затем связать свой адаптер к ListView с setListAdapter().