Android Kotlin - Die Methode onNavigationItemSelected kann nicht aufgerufen werden

xaos_xv

Ich habe in Kotlin ein Schubladenmenü erstellt und möchte diese Menüpunkte verwenden. In Java habe ich die onNavigationItemSelectedMethode aufgerufen, aber wenn ich sie in Kotlin verwenden möchte, wird sie nicht angezeigt. Hier ist mein Code:

<android.support.v4.widget.DrawerLayout 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"
    android:id="@+id/drawerLayout"
    tools:context="com.example.zamknijryjx.liobrus.UserActivity">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/imie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="40dp"
            android:text="Imie"
            android:textSize="50sp"
            android:textColor="@color/black"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </android.support.constraint.ConstraintLayout>

    <android.support.design.widget.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:menu="@menu/navigation_menu"
        android:layout_gravity="start"
        app:headerLayout="@layout/navigation_header">
    </android.support.design.widget.NavigationView>

</android.support.v4.widget.DrawerLayout>

Hier ist navigation_menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/nav_home"
        android:title="Home"/>

    <item android:id="@+id/nav_sprawdziany"
        android:title="Sprawdziany"/>
    <item android:id="@+id/nav_prace"
        android:title="Prace klasowe"/>

</menu>

Und Code in meiner Aktivität:

mToggle = ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close)
drawerLayout.addDrawerListener(mToggle!!)
mToggle!!.syncState()

supportActionBar!!.setDisplayHomeAsUpEnabled(true)

override fun onOptionsItemSelected(item: MenuItem?): Boolean {

    if (mToggle!!.onOptionsItemSelected(item)) {
        return true
    }

    return super.onOptionsItemSelected(item)
}

Also möchte ich so etwas machen: Wenn der Benutzer zum Beispiel auf den Menüpunkt mit der ID klickt nav_home, wird Toast gemacht. Vielen Dank für die Hilfe!

zsmb13

Sie können Ihre NavigationViewID in Ihrer Layoutdatei angeben:

<android.support.design.widget.NavigationView
    android:id="@+id/navigationView"
    ... >
</android.support.design.widget.NavigationView>

Und fügen Sie dann einen Listener hinzu in Ihrem UserActivity:

navigationView.setNavigationItemSelectedListener {
    when (it.itemId) {
        R.id.nav_home -> {
            // handle click
            true
        }
        else -> false
    }
}

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Java kann nicht die Methode herauszufinden aufgerufen werden

Die Methode eines generischen Objekts in Java kann nicht aufgerufen werden

Das Objekt 'module' kann nicht aufgerufen werden. Die Methode wird in einer anderen Datei aufgerufen

Eine Methode, die von einer statischen Methode aufgerufen wird, kann nicht überprüft werden

TypeError: Die Methode 'charCodeAt' von undefined kann nicht aufgerufen werden

Die Methode systemProperty () kann für ein Nullobjekt nicht aufgerufen werden - Android Studio und Gradle

Die statische Python-Methode kann nicht immer aufgerufen werden

Android: Kotlin: Benutzerdefiniertes WebView - kann nicht als Funktion aufgerufen werden. Die Funktion 'invoke ()' wurde nicht gefunden

Die Methode getLifecycle () kann in AppCompatActivity nicht aufgerufen werden

Die Methode "push" von undefined kann nicht aufgerufen werden

Die Blazor-Javascript-Methode kann nicht aufgerufen werden

Die Methode "getValues" von undefined kann nicht aufgerufen werden

Die Methode kann nicht innerhalb einer Klasse aufgerufen werden

Die HttpPost-Methode des Controllers kann nicht aufgerufen werden

freeopcua python, Methode kann nicht aufgerufen werden

Die Methode c # der Klasse kann nicht aufgerufen werden.

ionicModal Die Methode 'fromTemplateUrl' von undefined kann nicht aufgerufen werden

Der Versuch, die Methode in Einheit aufzurufen. Methode kann nicht aufgerufen werden

Die zurückgegebene Methode kann nicht vom Instanznamen aufgerufen werden

Methode in Main () kann nicht aufgerufen werden?

Methode kann nicht vom Konstruktor aufgerufen werden

Die nicht statische Methode kann nicht von der nicht statischen Methode in Android Studio aufgerufen werden

Der from()-Operator kann in Observable in Kotlin Android nicht aufgerufen werden

Methode kann in Python nicht aufgerufen werden

Methode kann nicht von Klasse aufgerufen werden

Die Methode der untergeordneten Komponente in React kann nicht aufgerufen werden

Warum die Methode $.ajax() in diesem Codeabschnitt nicht innerhalb der Methode $('selector').delegate() aufgerufen werden kann

Die Methode der verspotteten Klasse kann nicht aufgerufen werden

Methode kann in einem Gem nicht aufgerufen werden

TOP Liste

heißlabel

Archiv