Android 更改导航抽屉项目上的屏幕单击
我是纯Android的新手,来自Xamarin.Forms,所以这里有一个非常基本的问题。我用导航抽屉模板启动了我的项目,我正在尝试更改“hello world”屏幕,当我选择一个导航抽屉项目时,默认情况下会看到该屏幕。我看到content_main.xml中有一个相对布局,它定义了“Hello World”屏幕。如何将我看到的屏幕切换到另一个xml布局?像这样的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
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();
}
}
当您使用导航抽屉时,您应该为抽屉中的每个项目创建片段。
所以,从创建片段开始,并如上所述将其传递给各个项目
祝你好运