【发布时间】:2014-11-08 14:54:11
【问题描述】:
我正在尝试实现一个材质导航抽屉。像这样https://github.com/kanytu/android-material-drawer-template。
我有两个问题。
1.我在main Activity 中声明了onNavigationDrawerItemSelected 方法中的所有意图。如果我的主要活动指向另一个活动,例如FeedActivity。那么我是否必须在我的feedActivity 中声明不同的onNavigationDrawerItemSelected 方法。
2.当我在onNavigationDrawerItemSelected 方法中传递MainActivity 意图时。应用程序无法正常运行。
public class MainActivity extends ActionBarActivity implements NavigationDrawerCallbacks{
private Toolbar mToolbar;
private NavigationDrawerFragment mNavigationDrawerFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer);
mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public void onNavigationDrawerItemSelected(int position) {
if (position == 1){
startActivity(new Intent(this, FeedListActivity.class));
}else if (position == 2){
startActivity(new Intent(this, VideoActivity.class));
}
}
}
编辑 .如果我在上述方法中通过以下代码。该应用程序不会进入 FeedActivity。它再次打开 mainActivity。当我按下列表中的第一项时。
if (position == 0){
startActivity(new Intent(this, MainActivity.class));
如果问题不清楚,很抱歉。 提前致谢。
【问题讨论】:
-
在问题 #2 中,请澄清您所说的应用程序无法正常工作的含义,并且应用程序的工作方式不同......当您替换为底部的代码时。您是否收到错误(什么错误),是否开始了错误的活动?等等……
-
如果您要在多个活动中使用导航抽屉,那么您必须在每个活动中实现方法。例如,在这种情况下,最好使用片段而不是各种活动。我不明白第二个问题。请澄清
-
@Namespace 查看编辑...
标签: android android-intent navigation-drawer material-design