如何从导航抽屉调用 main activity
How to call main activity from the navigation drawer
我创建了一个导航抽屉,其中有一个主页选项,我想将其重定向到主菜单 activity。
其余所有选项打开一个片段。
我收到一条错误消息,提示未定义 getactivity。
是否可以从 activity 本身调用 activity。
如果是,我可以得到代码吗?
我删除了部分代码,因为它是创建导航抽屉时的默认代码。
这是我的主要 activity:
private void displaySelectedScreen(int itemId) {
//creating fragment object
Fragment fragment = null;
//initializing the fragment object which is selected
switch (itemId) {
case R.id.nav_home:
Intent in = new Intent(this.getActivity(), MainActivity.class);
startActivity(in);
case R.id.nav_contact_us:
fragment = new ContactUs();
break;
case R.id.nav_how_to_convert:
fragment = new HowAppWorks();
break;
case R.id.nav_team:
fragment = new Team();
break;
}
//replacing the fragment
if (fragment != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.commit();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
displaySelectedScreen(item.getItemId());
return true;
}
正如您所说,您在 MainActivity 中,但您仍然想在 MainActivity 中移动,感染它是一种糟糕的方法,您只能刷新数据或重新加载视图。但是,如果您仍然想要,这就是您代码中的问题假设它的 MainActivity 代码在上下文中使用 MainActivity.this 而不是这个。 getActivity();
Intent in = new Intent(MainActivity.this, MainActivity.class);
startActivity(in);
注意:Activity class 没有 getActivity() 方法
startActivity(new Intent(MainActivity.this, MainActivity.class));
finish()
我创建了一个导航抽屉,其中有一个主页选项,我想将其重定向到主菜单 activity。 其余所有选项打开一个片段。
我收到一条错误消息,提示未定义 getactivity。 是否可以从 activity 本身调用 activity。 如果是,我可以得到代码吗?
我删除了部分代码,因为它是创建导航抽屉时的默认代码。 这是我的主要 activity:
private void displaySelectedScreen(int itemId) {
//creating fragment object
Fragment fragment = null;
//initializing the fragment object which is selected
switch (itemId) {
case R.id.nav_home:
Intent in = new Intent(this.getActivity(), MainActivity.class);
startActivity(in);
case R.id.nav_contact_us:
fragment = new ContactUs();
break;
case R.id.nav_how_to_convert:
fragment = new HowAppWorks();
break;
case R.id.nav_team:
fragment = new Team();
break;
}
//replacing the fragment
if (fragment != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.commit();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
displaySelectedScreen(item.getItemId());
return true;
}
正如您所说,您在 MainActivity 中,但您仍然想在 MainActivity 中移动,感染它是一种糟糕的方法,您只能刷新数据或重新加载视图。但是,如果您仍然想要,这就是您代码中的问题假设它的 MainActivity 代码在上下文中使用 MainActivity.this 而不是这个。 getActivity();
Intent in = new Intent(MainActivity.this, MainActivity.class);
startActivity(in);
注意:Activity class 没有 getActivity() 方法
startActivity(new Intent(MainActivity.this, MainActivity.class));
finish()