更改导航抽屉项目上的屏幕点击
问题描述:
我是纯粹的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);
,或者如果您使用的片段,您可以更改片段通过这个代码
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();
}
}
正如你所使用的导航抽屉,你应该在抽屉中的每一项创建片段。 因此,开始创建片段并将其传递给上述的单个项目 祝您好运!