Как заставить работать мой Bottom Navigation View? - PullRequest
0 голосов
/ 19 сентября 2018

Я использую BottomNavigationView в моем проекте, и он работает нормально.За исключением того, что теперь я добавил BottomNavigationView в свой 3. Activity и только там он выдает исключение, и я не могу найти проблему с моим кодом.

Вот мой код из моей Activity:

private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
    when (item.itemId) {                                                            //when Bottom Navigationbar is clicked
        R.id.navigation_Auskunft -> { //Different Activities can be opened
            val intent = Intent(this, fahrplanmap::class.java)        //Opens fahrplanmap Class
            startActivity(intent)
            return@OnNavigationItemSelectedListener true
        }
        R.id.navigation_Abfahrtsmonitor -> {
            val intent = Intent(this, Abfahrtsmonitor::class.java)        //Opens fahrplanmap Class
            startActivity(intent)
            return@OnNavigationItemSelectedListener true
        }
        R.id.navigation_Karte -> {
            val intent = Intent(this, MapsAnzeigeActivity::class.java)        //Opens fahrplanmap Class
            startActivity(intent)
            return@OnNavigationItemSelectedListener true
        }
        R.id.navigation_Meldungen -> {
            return@OnNavigationItemSelectedListener true
        }
        R.id.navigation_weiteres -> {
            return@OnNavigationItemSelectedListener true
        }
    }
    false
}
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.abfahrtsmonitor)
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener) //Here it is red undlerined with the error 
....
}

мой xml-файл для этого кода:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout     xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Abfahrtsmonitor">


<EditText
    android:id="@+id/editText"
    android:layout_width="360dp"
    android:layout_height="47dp"
    android:ems="10"
    android:hint="Suche"
    android:inputType="textPersonName"
    tools:layout_editor_absoluteX="16dp"
    tools:layout_editor_absoluteY="7dp" />

<android.support.v7.widget.RecyclerView
    android:id="@+id/Recycleview"
    android:layout_width="370dp"
    android:layout_height="441dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="4dp"
    android:layout_marginTop="8dp"
    app:layout_constraintBottom_toTopOf="@+id/navigation"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText" />

<android.support.design.widget.BottomNavigationView
    android:layout_width="368dp"
    android:layout_height="48dp"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="511dp"
    android:id="@+id/navigation"
    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-файл из другой деятельности:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout     xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fahrplanmap">

<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" />

В других моих видах деятельностиЯ определил их точно так же, и он работает там без проблем.

Я загрузил картинку с ошибкой при наведении мыши

MY Error

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Я думаю, что есть проблема с вашими операторами импорта.

Кажется, что элемент с идентификатором navigation находится как в abfahrtsmonitor.xml, так и activity_fahrplanmap.xml.Поскольку оба они импортированы, разрешение вашего BottomNavigationView невозможно (разрешение неоднозначности).

Если вам нужно импортировать оба значения abfahrtsmonitor.xml и activity_fahrplanmap.xml, вам следует переименовать элемент с идентификатором navigationв одном из этих файлов.

0 голосов
/ 19 сентября 2018

Это, вероятно, потому, что вы никогда не инициализировали BottomNavigationView внутри метода onCreate().

Внутри метода onCreate():

BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);

Тогда:

navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener) 

Кроме того, не используйте один и тот же идентификатор дважды: android:id="@+id/navigation"

Вот хороший пример использования BottomNavigationView: https://github.com/hitherejoe/BottomNavigationViewSample/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...