我需要扩展到片段,但也需要listactivity

时间:2018-03-02 14:59:23

标签: java android android-fragments

Android工作室。所以基本上我是MainActivity我有NavigationDrawer,我用它去片段。当我打开这个片段时,我需要它来显示Listview。问题是为了使listview工作我需要扩展到listactivity,但是为了从菜单打开片段我需要扩展到Fragment。怎么办?

继承我的MainActivity导航抽屉

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    Fragment fragment = null;

    if (id == R.id.nav_main) {
        // Handle the camera action
        fragment = new WebListFragment();

    } else if (id == R.id.nav_add) {

        // Handle the camera action
        fragment = new AddFragment();

    } else if (id == R.id.nav_tut) {

    }

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

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

这是我的片段

公共类WebListFragment扩展了Fragment {

public WebListFragment() {}

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

    String[] links = {"Facebook", "Twitter", "StackOverflow"};
    ArrayAdapter<String> adapter= new ArrayAdapter<String>(getListView().getContext(), android.R.layout.simple_list_item_1, links);
    getListView().setAdapter(adapter);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_web_list, container, false);
}

1 个答案:

答案 0 :(得分:1)

  

问题是为了使listview工作,我需要扩展到listactivity

test.c是一个便利课。您可以使用ListActivity而不是ListView

  

为了从菜单中打开片段,我需要扩展到Fragment

或者,您可以从本身继承自ListActivity

的类扩展
  

怎么办?

你可以use ListFragment。或者,您可以使用Fragment,并像管理任何其他小部件一样管理Fragment