我想我以前的問題還不夠清楚(Android: failed to setContentView when switching to ListActivity),所以我解釋如下。android:在兩個listactivities中有兩個listviews沒有工作
在我的應用我有一個使用兩種不同的列表視圖2個listactivities:
public class Activity1 extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
setContentView(R.layout.listview1);
}
public class Activity2 extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
setContentView(R.layout.listview2);
}
}
所要求的機器人,列表視圖必須有一個ID而這正是 「@android:ID /列表」 。如果我使用相同的ID在listview1和listview2中設置了listview,那麼他們最終會使用相同格式的listview,這不是我想要的。但是,如果我將其中一個ID設置爲「@ + id/listview2」,則android給了我錯誤: java.lang.RuntimeException:您的內容必須具有List屬性爲'android.R.id的ListView。列表'
我該如何處理這種困境?
BTW:我的列表視圖是有點複雜,圖像圖標和文本customed名單,所以在我的代碼,我也延長了ListAdapter:
this.mListAdapter = new myListAdapter(this,
R.layout.listview1, mTiebaInfo);
setListAdapter(this.mListAdapter);
你能不能更加健康?我使用ListView的原因是因爲我的列表很複雜,而且我還擴展了ListAdapter。 – Yang 2010-04-18 21:26:22
複雜性應該與它無關。您可以擴展'BaseAdapter'並覆蓋getView(),就像您以前顯示的那樣返回任何您想要的視圖。然後簡單地獲得對您定義的ListView的引用,並通過調用setAdapter(adapter)將其適配器設置爲您的自定義適配器。 – jqpubliq 2010-04-18 21:34:03
我不知道你在說什麼。我已經擴展了基於ListAdapter的適配器。事情是,如果我不擴展ListActivity,我將無法調用setListAdapter()。如果我只按照你所說的擴展Activity和setAdapter(),我怎麼能把它列爲一個列表? – Yang 2010-04-18 21:59:12