将适配器应用于ListFragment

时间:2014-08-01 07:51:46

标签: android

我有一个简单的问题。 正如我们能够以下列方式将适配器应用于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);
    }
}

enter image description here

感谢

2 个答案:

答案 0 :(得分:2)

<强>问题:

getListView()

当您尝试在片段中调用该方法时,它会调用您的活动的列表视图参考​​而不是您的片段列表视图

这是documentation

Get the activity's list view widget.

而是直接使用setListAdapter来设置片段的适配器

<强>样品:

setListAdapter((new myadapter()));

答案 1 :(得分:0)

对于ListFragment,您必须使用ListFragment.setListAdapter(),就像使用setadapter一样,将跳过重要的初始化。