导航抽屉不导航

时间:2018-05-15 09:30:07

标签: java android

我创建了一个导航抽屉,我不想使用片段而是使用活动。我添加了这个代码,这个代码在我看过的很多教程中都有效。

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方法下面有一条灰线,表示该方法尚未使用。

1 个答案:

答案 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);