Android BottomNavigationView OnNavigationItemSelectedListener代码未运行

时间:2018-01-24 02:13:27

标签: java android bottomnavigationview

我正在开发一款应用程序,为学生提供学校的日程安排等。我正在尝试使用BottomNavigationView代替每个选项卡底部的独立按钮。我已经完成了大量的研究,以了解如何使用BottomNavigationView,并成功创建了几个测试应用程序。但是,到目前为止,我无法让BottomNavigationView在以前编写的代码中实现。视图本身显示,但OnNavigationItemSelectedListener代码未运行。注意:已经在应用程序中已经编写的代码量意味着在这个应用程序中使用BottomNavigationView的最佳方式(我认为)是在选择BottomNavigationView中的一个项目时切换到另一个java类,并且我目前拥有的四项活动中的每一项都有相同的BottomNavigationView。

MainActivity的onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    findToday();
    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.bottomnavschedule);
    navigation.bringToFront();
    navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.schedule_tab:
                    return true;
                case R.id.barcode_tab:
                    startActivity(new Intent(getApplicationContext(), barcodeActivity.class));
                    return true;
                case R.id.contacts_tab:
                    startActivity(new Intent(getApplicationContext(), friendActivity.class));
                    return true;
                case R.id.other_tab:
                    startActivity(new Intent(getApplicationContext(), otherActivity.class));
                    return true;
            }
            return false;
        }
    });
    new refreshSchedule().execute();

和activity_main中的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.fuady.ssa_app_redo1.MainActivity"

    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="@mipmap/appbg4">

    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"

        android:layout_width="match_parent"
        android:layout_height="530dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.fuady.ssa_app_redo1.MainActivity">
        <Button
            android:id="@+id/todayButton"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:layout_above="@+id/dayScroller"
            android:layout_centerInParent="true"
            android:onClick="todayButtonFunction"
            android:text="Today"
            android:textSize="12dp" />

        <Button
            android:id="@+id/previousDayButton"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:layout_above="@id/dayScroller"
            android:layout_marginRight="20dp"
            android:layout_toLeftOf="@+id/todayButton"
            android:onClick="previousDay"
            android:text="Previous Day"
            android:textSize="12dp" />

        <Button
            android:id="@+id/nextDayButton"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:layout_above="@id/dayScroller"
            android:layout_marginLeft="20dp"
            android:layout_toRightOf="@+id/todayButton"
            android:onClick="nextDay"
            android:text="Next Day"
            android:textSize="12dp" />

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/todayButton"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/button19"
            android:layout_marginTop="15dp" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_marginTop="2dp"
            android:textColor="#ffffff"
            android:textSize="16dp" />

        <ImageView
            android:id="@+id/button19"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_gravity="bottom|right"
            android:layout_marginEnd="9dp"
            android:layout_marginRight="9dp"
            android:background="@android:color/transparent"
            android:onClick="editSchedule"
            android:src="@drawable/editicon" />


        <SeekBar
            android:id="@+id/dayScroller"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_centerHorizontal="true"

            android:layout_marginBottom="2dp" />

    </RelativeLayout>

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottomnavschedule"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:itemIconTint="@color/colorPrimary"
        app:menu="@menu/bottom_nav_resource" />

</RelativeLayout>

我的BottomNavigationView菜单文件(名为bottomnavresource):

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/schedule_tab"
        android:title="Schedule"
        android:icon="@drawable/shedules"
        />
    <item
        android:id="@+id/barcode_tab"
        android:title="Barcode"
        android:icon="@drawable/barcodeicon"
        />
    <item
        android:id="@+id/contacts_tab"
        android:title="Contacts"
        android:icon="@drawable/friend"
        />
    <item
        android:id="@+id/other_tab"
        android:title="More"
        android:icon="@drawable/other"
        />
</menu>

我还没有尝试将BottomNavigationView实现到任何其他标签中,因为它在此标签中不起作用。我还创建了另一个具有几乎相同的BottomNavigationView代码的程序(没有专门针对此应用程序的其他代码)作为测试,并且它工作得很好。我已经多次更改了很多东西,但是,当点击BottomNavigationView上的任何标签时,选项卡会被选中,但活动不会切换。

感谢您的帮助。

0 个答案:

没有答案