ListView в xml, установив Adapter в - PullRequest
1 голос
/ 28 июля 2011

У меня есть следующий код:

public class ShowActivity extends ListActivity implements OnItemClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);
 //       setContentView(R.layout.show_list);

        ListView lv = getListView();

        String[] projection = new String[]{
                BaseColumns._ID,
                DepotTableMetaData.ITEM_NAME,
                DepotTableMetaData.ITEM_AMOUNT,
                DepotTableMetaData.ITEM_UNIT,
                DepotTableMetaData.ITEM_PPU,
                DepotTableMetaData.ITEM_TOTAL,
                DepotTableMetaData.ITEM_COMMENT};

        Cursor c = managedQuery(ContentProviderMetaData.DepotTableMetaData.CONTENT_URI, projection, null, null, ContentProviderMetaData.DepotTableMetaData.DEFAULT_SORT_ORDER);
        String[] columns = new String[]{BaseColumns._ID,ContentProviderMetaData.DepotTableMetaData.ITEM_NAME, ContentProviderMetaData.DepotTableMetaData.ITEM_AMOUNT, ContentProviderMetaData.DepotTableMetaData.ITEM_UNIT, ContentProviderMetaData.DepotTableMetaData.ITEM_PPU, ContentProviderMetaData.DepotTableMetaData.ITEM_TOTAL, ContentProviderMetaData.DepotTableMetaData.ITEM_COMMENT};
        int[] to = new int[]{R.id.lname,R.id.lamount,R.id.lunit,R.id.lppu,R.id.ltotal,R.id.lcomment};
        Log.d("ShowActivity","Cursor, columns, to set - now setting adapter");
        SimpleCursorAdapter simpleadapter = new SimpleCursorAdapter(this,R.layout.list_entry, c, columns, to);
     //   ListView lv = (ListView)findViewById(R.id.ListView);
        this.setListAdapter(simpleadapter);

        lv.setOnItemClickListener(this);
    //    intentCheck();
    }

Работает нормально, но, как вы могли заметить в моих комментариях, я не хочу создавать просмотр списка с помощью getListView (), я хочу сделать обычный setContentView (R.Layout .---) и заполнить Listview, который там определен. Но все учебники, которые я видел, пока делают это так, и я понятия не имею, как изменить это в соответствии с моими пожеланиями.

Как должен выглядеть мой layout-xml? как мне "сказать ему, чтобы использовать это"? Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 28 июля 2011

Вы можете напрямую использовать setContentView (R.layout.main);на ListActivity, если вы определяете listView с помощью идентификатора android: list в своем xml:

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

            />

Чтобы установить вызов адаптера, непосредственно setListAdapter из вашего ListActivity

1 голос
/ 28 июля 2011

Не используйте ListActivity в качестве базового класса, расширяйте Activity, устанавливайте содержимое для макета, захватывайте ссылку на расширенный ListView (findViewById (...)), а затем обрабатывайте настройку адаптера таким образом.

0 голосов
/ 28 июля 2011
ListView lv = (ListView)findViewById(android.R.id.list);

Нет необходимости вносить изменения в .xml

...