我有以下代码:
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.-)并填充一个在那里定义的列表视图。但我看到的所有教程都是这样做的,我不知道如何根据自己的愿望改变这一点。
我的layout-xml应该是什么样子的?我如何“告诉他使用它”?提前谢谢。
发布于 2011-07-28 23:40:21
只要在ListActivity上定义一个带有android:list id的listView,就可以在xml上直接使用setContentView(R.layout.main);:
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>从ListActivity直接setListAdapter设置适配器调用
发布于 2011-07-28 23:34:53
不要使用ListActivity作为基类,扩展Activity,将内容设置为布局,获取对扩展的ListView的引用(findViewById(...))然后以这种方式处理适配器的设置。
发布于 2011-07-28 23:41:42
ListView lv = (ListView)findViewById(android.R.id.list);不需要对.xml进行更改
https://stackoverflow.com/questions/6861608
复制相似问题