2017-02-26 127 views
0

我有一个带有ListView的activity_main布局。
我需要在MainActivity中填充我的ListView。在活动中添加ListView内容

MainActivity不扩展ListActivity,因为我在布局中不仅使用ListView,而且使用其他元素。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_top_level); 
    ListView listView = (ListView) findViewById(R.id.mylist); 
} 

Item.items返回一个数组,我需要添加到ListView中。
我该怎么做?我知道我不得不使用ArrayAdapter。但我做不好。
它适用于我,但我不明白使用android.R.layout.simple_list_item_1

ArrayAdapter<Item> itemsAdapter = 
    new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Item.items); 
listView.setAdapter(itemsAdapter); 

回答

0

关于你的问题,你有两个选择。

1)非常简单的事情,将toString()您的Item对象在每一行。

ArrayAdapter<Item> adapter = new ArrayAdapter<Item>(
    MainActivity.this, // Context 
    android.R.layout.simple_list_item_1, // An XML file for your items 
    Item.items   // The Item[] array 
); 
listView.setAdapter(adapter); 

2)定义您own adapter class with your own XML


如果你知道如何使用ListActivity,你仍然可以显示其他元素,顺便说一句。

Read the documentation

如果您愿意,可以通过在onCreate()中设置您自己的视图布局setContentView()来自定义屏幕布局。要做到这一点,你自己的观点必须包含一个ListView对象与编号"@android:id/list"