我有一个简单的问题。 正如我们能够以下列方式将适配器应用于ListActivity:
getListView().setAdapter(new myadapter());
同样不适用于ListFragment。
任何人都可以更新为什么除了引用api引用之外这不起作用。
public class mylistfrag extends ListFragment
{
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
ListView lv=getListView();
ArrayAdapter<String> aa=new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,((myfragshow)getActivity()).st);
lv.setAdapter(aa);
}
}
public class myfragshow extends FragmentActivity
{
String st[]={"a","b","C","d","e"};
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.myfragshow);
}
}
感谢
答案 0 :(得分:2)
<强>问题:强>
getListView()
当您尝试在片段中调用该方法时,它会调用您的活动的列表视图参考而不是您的片段列表视图
Get the activity's list view widget.
而是直接使用setListAdapter
来设置片段的适配器
<强>样品:强>
setListAdapter((new myadapter()));
答案 1 :(得分:0)
对于ListFragment,您必须使用ListFragment.setListAdapter(),就像使用setadapter一样,将跳过重要的初始化。