我想我以前的问题还不够清楚(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