Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio-导航活动_Android_Android Activity_Navigation - Fatal编程技术网

Android Studio-导航活动

Android Studio-导航活动,android,android-activity,navigation,Android,Android Activity,Navigation,我似乎无法理解这一点。我有MainActivity并创建了SecondActivity和ThirdActivity,我希望能够导航到它们 我在MainActivity中使用BottomNavigation在活动之间导航: public class MainActivity extends AppCompatActivity { protected BottomNavigationView navigationView; @Override protected void onCreate(Bu

我似乎无法理解这一点。我有MainActivity并创建了SecondActivity和ThirdActivity,我希望能够导航到它们

我在MainActivity中使用BottomNavigation在活动之间导航:

public class MainActivity extends AppCompatActivity {

protected BottomNavigationView navigationView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.navigation_menuItem1:
                    Intent intent = new Intent(MainActivity.this, MainActivity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_menuItem2:
                    Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                    startActivity(intent);
                    return true;
                case R.id.navigation_menuItem3:
                    Intent intent = new Intent(MainActivity.this, ThirdActivity.class);
                    startActivity(intent);
                    return true;
            }
            return false;
        }

    };

navigationView = (BottomNavigationView) findViewById(R.id.navigation);
navigationView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
有没有线索说明它为什么不切换页面/活动

编辑:添加以下行以使其正常工作:

protected BottomNavigationView navigationView;


谢谢你的帮助

万一你错过了什么,确保你没有忘记什么:

在布局的xml中创建BottomNavigationView:

<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="0dp"
        android:layout_marginStart="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/navigation" />
编辑 将此添加到您的
onCreate()


检查当您单击菜单项时,它是否调用了正确的案例。我向每个案例添加了日志,但没有向控制台输出任何内容。然后,由于没有调用它,侦听器出现了问题。请把你们的主要电话号码填上Activity@user8606632您是否已将您的
OnNavigationItemSelectedListener
分配给您的
BottomNavigationView
?文件结构已全部设置,包括您列出的XML文件。我添加了发布的click listener代码,但最后两行出现错误:BottomNavigationView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);这仍然给了我错误,无法验证。有效的方法是在onCreate方法之上添加这个:受保护的BottomNavigationView navigationView;下面是BottomNavigationView代码:navigationView=(BottomNavigationView)findViewById(R.id.navigation);navigationView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);谢谢你的帮助!
<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="0dp"
        android:layout_marginStart="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/navigation" />
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

   <item
       android:id="@+id/navigation_menuItem1"
       android:icon="@drawable/ic_home_black_24dp"
       android:title="@string/menuItem1" />

   <item
       android:id="@+id/navigation_menuItem2"
       android:icon="@drawable/ic_dashboard_black_24dp"
       android:title="@string/menuItem2" />

   <item
       android:id="@+id/navigation_menuItem3"
       android:icon="@drawable/ic_notifications_black_24dp"
       android:title="@string/menuItem3" />


</menu>
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {

            switch (item.getItemId()) {
                case R.id.navigation_menuItem1:
                    return true;

                case R.id.navigation_menuItem2:
                    return true;

                case R.id.navigation_menuItem3:
                    return true;


            }
            return true;
        }

    };

    private BottomNavigationView.OnNavigationItemReselectedListener mOnNavigationItemReselectedListener = new BottomNavigationView.OnNavigationItemReselectedListener() {
        @Override
        public void onNavigationItemReselected(@NonNull MenuItem item) {

            switch (item.getItemId()) {

                case R.id.navigation_menuItem1:
                    Log.d(TAG, "navigation_menuItem1 Reselected ===");
                    break;

                case R.id.navigation_menuItem2:
                    Log.d(TAG, "navigation_menuItem2 Reselected ===");
                    break;

                case R.id.navigation_menuItem3:
                    Log.d(TAG, "navigation_menuItem3 Reselected ===");
                    break;

            }

        }
    };

bottomNavigationView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

bottomNavigationView.setOnNavigationItemReselectedListener(mOnNavigationItemReselectedListener);
BottomNavigationView bottomNavigationView;
bottomNavigationView = findViewById(R.id.navigation);