2011-07-28 60 views
1

我有以下代碼:的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如何看起來像?我如何「告訴他使用它」? 在此先感謝。

回答

4

您可以直接使用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

1

不要使用ListActivity作爲您的基類,擴展Activity,將您的內容設置爲佈局,獲取對擴展ListView的引用(findViewById(...)),然後處理以這種方式設置適配器。

0
ListView lv = (ListView)findViewById(android.R.id.list); 

沒有在需要改變適配器設置呼叫。 xml