的ListView在XML中,设置适配器
问题描述:
我有以下代码:的ListView在XML中,设置适配器
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如何看起来像?我如何“告诉他使用它”? 在此先感谢。
答
您可以直接使用setContentView(R.layout.main);在ListActivity只要你定义了Android列表视图:在你的XML列表ID:
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
要直接setListAdapter从ListActivity
答
不要使用ListActivity作为您的基类,扩展Activity,将您的内容设置为布局,获取对扩展ListView的引用(findViewById(...)),然后处理以这种方式设置适配器。
答
ListView lv = (ListView)findViewById(android.R.id.list);
没有在需要改变适配器设置呼叫。 xml