碎片中的ListView和TabWidget

4

以下是我的代码的一部分:

Fragment fragment = null;
        switch (position) {
        case 0:
            fragment = new HomeFragment();
            break;
        case 1:
            fragment = new FindPeopleFragment();
            break;
        case 2:
            fragment = new PhotosFragment();
            break;
        case 3:
            fragment = new CommunityFragment();
            break;
        case 4:
            fragment = new PagesFragment();
            break;
        case 5:
            fragment = new WhatsHotFragment();
            break;

        default:
            break;
        }

        if (fragment != null) {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.frame_container, fragment).commit();

            // update selected item and title, then close the drawer
            mDrawerList.setItemChecked(position, true);
            mDrawerList.setSelection(position);
            setTitle(navMenuTitles[position]);
            mDrawerLayout.closeDrawer(mDrawerList);
        } else {
            // error in creating fragment
            Log.e("MainActivity", "Error in creating fragment");
        }

如何制作HomeFragment中的列表视图或选项卡小部件。

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class HomeFragment extends Fragment {

    public HomeFragment(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.tabs_scroll, container, false);
        return rootView;
    }
}

如果我扩展了ListFragment,那么这行代码:
fragmentManager.beginTransaction()
                        .replace(R.id.frame_container, fragment).commit();

标记一个错误:"FragmentTransaction中的replace(int, Fragment)方法不适用于参数(int, HomeFragment)"

请问,我该如何解决这个问题?同时,如果我不想使用listview,我该如何添加选项卡小部件?

1个回答

1

试试这个...

你不能像这样做Fragment fragment = new HomeFragment();如果你这样做,你会得到无法将HomeFragment转换为Fragment因为HomeFragment是片段类,所以你不能将它分配给Fragment。所以,你必须像这样HomeFragment fragment = new HomeFragment();例如从你的代码。

switch (position) {
        case 0:
            HomeFragment fragment = new HomeFragment();

            if (fragment != null) {
                  FragmentManager fragmentManager = getSupportFragmentManager();
                  fragmentManager.beginTransaction()
                            .replace(R.id.frame_container, fragment).commit();

                  // update selected item and title, then close the drawer
                  mDrawerList.setItemChecked(position, true);
                  mDrawerList.setSelection(position);
                  setTitle(navMenuTitles[position]);
                  mDrawerLayout.closeDrawer(mDrawerList);
            } else {
                  // error in creating fragment
                  Log.e("MainActivity", "Error in creating fragment");
            }
            break;

            // do like this for remaining cases

        default:
            break;
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接