我创建了一个导航抽屉,我不想使用片段而是使用活动。我添加了这个代码,这个代码在我看过的很多教程中都有效。
public boolean onNavigationItemSelected( MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
switch (id) {
case R.id.Daily: {
Intent h= new Intent(goals.this, Daily.class );
startActivity(h);
break;
}
}
//close navigation drawer
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawerLayout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
每当我点击页面时我想导航到。抽屉关闭,没有其他事情发生。我只是一个初学者,所以我不知道如何继续。我已经看了大约10个教程,这就是他们说的工作,但它没有,我不知道为什么。 onNavigationItemSelected方法下面有一条灰线,表示该方法尚未使用。
答案 0 :(得分:1)
您的活动需要实施NavigationView.OnNavigationItemSelectedListener
,您必须为NavigationDrawer
设置监听器。这样的事情应该有效:
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
// rest of code
}
}
修改强>:
您NavigationViewer
的XML中的GoalsActivity
应如下所示:
<android.support.design.widget.NavigationView
android:id="navigationView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#414E68"
app:itemIconTint="#FFFFFF"
app:headerLayout="@layout/header_profile"
app:itemTextColor="@android:color/background_light"
app:menu="@menu/drawermenu">
此外,请在GoalsActivity.java
方法内添加onCreate()
:
NavigationView navigationView = findViewById(R.id.navigationView);
navigationView.setNavigationItemSelectedListener(this);