Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改导航抽屉项目上的屏幕单击_Android_Android Activity_Navigation_Navigation Drawer_Drawer - Fatal编程技术网

Android 更改导航抽屉项目上的屏幕单击

Android 更改导航抽屉项目上的屏幕单击,android,android-activity,navigation,navigation-drawer,drawer,Android,Android Activity,Navigation,Navigation Drawer,Drawer,我是纯Android的新手,来自Xamarin.Forms,所以这里有一个非常基本的问题。我用导航抽屉模板启动了我的项目,我正在尝试更改“hello world”屏幕,当我选择一个导航抽屉项目时,默认情况下会看到该屏幕。我看到content_main.xml中有一个相对布局,它定义了“Hello World”屏幕。如何将我看到的屏幕切换到另一个xml布局?像这样的 public boolean onNavigationItemSelected(MenuItem item) { i

我是纯Android的新手,来自Xamarin.Forms,所以这里有一个非常基本的问题。我用导航抽屉模板启动了我的项目,我正在尝试更改“hello world”屏幕,当我选择一个导航抽屉项目时,默认情况下会看到该屏幕。我看到content_main.xml中有一个相对布局,它定义了“Hello World”屏幕。如何将我看到的屏幕切换到另一个xml布局?像这样的

    public boolean onNavigationItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.screen1) {
        // set current screen to content_main.xml
    } else if (id == R.id.screen2) {
        // set current screen to my_new_screen.xml
    } else if (id == R.id.screen3) {
        // set current screen to my_other_new_screen.xml
    }
Intent intent = new Intent(CurrentActivity.this, NewActivity.class);
startActivity(intent);

您可以按如下方式在项目上启动新活动

    public boolean onNavigationItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.screen1) {
        // set current screen to content_main.xml
    } else if (id == R.id.screen2) {
        // set current screen to my_new_screen.xml
    } else if (id == R.id.screen3) {
        // set current screen to my_other_new_screen.xml
    }
Intent intent = new Intent(CurrentActivity.this, NewActivity.class);
startActivity(intent);
或者,如果您使用的是片段,则可以通过此代码更改片段

Fragment newFragment = new YourNewFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container_name, newFragment);
transaction.commit();

如果您正在实现导航抽屉,那么您肯定会使用片段。因此,您可以使用以下代码:-

public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
   Fragment fragment = null;
    int id = item.getItemId();
    String get_title = item.getTitle().toString();

    if (id == R.id.nav_quick_list) {

        fragment = new CreateQuickList();

    } else if (id == R.id.nav_my_account) {
        fragment = new MyAccount();

    }


    if (fragment != null) {
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.content_frame, fragment);
        ft.commit();
    }

    title_tv.setText(get_title);
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}
你可以这样做

   public void onDrawerItemSelected(View view, int position) {
        displayView(position);
    }

    private void displayView(int position) {
        Fragment fragment = null;

        switch (position) {
            case 0:
                fragment = new OneFragment();
                break;
            case 1:
                fragment = new TwoFragment();
                break;
            case 2:
                fragment = new ThreeFragment();
                break;


        }

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


        }
    }
当您使用导航抽屉时,您应该为抽屉中的每个项目创建片段。 所以,从创建片段开始,并如上所述将其传递给各个项目 祝你好运