使用Listfragment替换片段时出错

时间:2014-12-25 10:35:21

标签: android

我做了这个

@Override
public void onNavigationDrawerItemSelected(int position) {
    Fragment obj = null;
    ListFragment listfragment = null;
    switch (position) {
        case 0:
            listfragment= new F1_fr();
            break;
        case 1:
            obj= new F6_fr();
            break;
        case 2:
            obj= new F3_fr();
            break;
        case 3:
            obj= new F4_fr();
            break;
        case 4:
            obj= new F5_fr();
            break;
    }

    if (obj != null) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction()
            .replace(R.id.container, obj)
            .commit();
    }
    else if (listfragment != null) {
        // do stuff if its a listfragment
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction()
            .replace(R.id.container, listfragment)
            .commit();
    }
}

但我在这里有一个错误:.replace(R.id.container,listfragment) 说我替换片段事务中的android.supportv4.app.fragment不能应用于(int,android.app.ListFragment)

    public class F1_fr extends ListFragment {
   View rootview;
    TextView t;
    ListView listView;

    @Override

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        rootview=inflater.inflate(R.layout.f1_lay,container,false);
        listView =(ListView) rootview.findViewById(R.id.list);
        rootview.findViewById(R.id.semi_transparent).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(getActivity(), qr.class);
                ;

                startActivity(intent);


            }
        });



        return rootview;

    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        final String[] items = getResources().getStringArray(R.array.heroes);
        final ArrayAdapter<String> aa = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, items);

        setListAdapter(aa);

    }

}

2 个答案:

答案 0 :(得分:2)

当您自动优化导入时(如Eclipse中的Ctrl-Shift-O),系统应该选择要导入的片段。选择支持版本或像laalto所说的ListFragment。

答案 1 :(得分:1)

您将android.app个片段与支持库片段混合在一起。

由于您的意图似乎是使用支持库片段,因此将android.app片段导入(例如android.app.ListFragment)替换为其android.support.v4.app.ListFragment等支持库对应项。