0

我是纯粹的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 
    } 

回答

1

东西,你可以在项目开始新的活动点击这样

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(); 
0

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

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; 
} 
1

你可以做到这一点

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(); 


     } 
    } 

正如你所使用的导航抽屉,你应该在抽屉中的每一项创建片段。 因此,开始创建片段并将其传递给上述的单个项目 祝您好运!