Android Kotlin更改菜单项标题不';行不通

Android Kotlin更改菜单项标题不';行不通,android,kotlin,Android,Kotlin,这是我的密码。 在Toast中,它说title已更改,但titletext没有更改,或者当我试图使其不可见时,它不会变为不可见 我从另一个不在mainactivity.xml中的xml获取menu.xml,这是问题所在吗?如果是,如何解决 这就是菜单xml val menuitem=menuList!!.findItem(R.id.adres) menuitem.setTitle("asdklzmfkldfvsas") this.invalidateOption

这是我的密码。 在
Toast
中,它说title已更改,但titletext没有更改,或者当我试图使其不可见时,它不会变为不可见 我从另一个不在mainactivity.xml中的xml获取menu.xml,这是问题所在吗?如果是,如何解决

这就是菜单xml

 val menuitem=menuList!!.findItem(R.id.adres)
        menuitem.setTitle("asdklzmfkldfvsas")
        this.invalidateOptionsMenu()
        Toast.makeText(this,menuitem.title.toString(),Toast.LENGTH_LONG).show()



override fun onCreateOptionsMenu(menu: Menu?): Boolean {

        getMenuInflater().inflate(R.menu.gecmissiparis, menu);
        this.menuList=menu
        return super.onCreateOptionsMenu(menu)
    }

导航视图部分

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

    <item
        android:id="@+id/itemxd"
        android:title="Item" />
    <item
        android:id="@+id/sipariscx"
        android:title="Item"

        >
        <menu>
            <item
                android:id="@+id/adres"
                android:title="czxzczxc" />
        </menu>
    </item>
    <item android:title="siparis1">
        <menu>
            <item android:title="adres1" />
        </menu>
    </item>
</menu>

当您调用
无效选项菜单时,它将再次调用
onCreateOptions菜单
,新菜单将重新创建,您在菜单中所做的任何更改都将丢失

尝试更新
onCreateOptions菜单中的menuitem
方法

<com.google.android.material.navigation.NavigationView

    android:id="@+id/oldsip"

    app:headerLayout="@layout/haderdeneme"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:menu="@menu/gecmissiparis"


    >

当您调用
invalidateOptions功能表
时,它会再次调用
onCreateOptions功能表
,新功能表将被重新创建,您在功能表中所做的任何更改都将丢失

尝试更新
onCreateOptions菜单中的menuitem
方法

<com.google.android.material.navigation.NavigationView

    android:id="@+id/oldsip"

    app:headerLayout="@layout/haderdeneme"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:menu="@menu/gecmissiparis"


    >

只需从
navigationview
的菜单中找到菜单项并更新标题即可

var updateTitle = true
this.invalidateOptionsMenu()
Toast.makeText(this,menuitem.title.toString(),Toast.LENGTH_LONG).show()



override fun onCreateOptionsMenu(menu: Menu?): Boolean {

        getMenuInflater().inflate(R.menu.gecmissiparis, menu);
        this.menuList=menu
        if(updateTitle)
        { 
            val menuitem=menuList!!.findItem(R.id.adres)            
            menuitem.setTitle("asdklzmfkldfvsas")
            updateTitle = false
        }
        return super.onCreateOptionsMenu(menu)
    }

只需从
navigationview
的菜单中找到菜单项并更新标题即可

var updateTitle = true
this.invalidateOptionsMenu()
Toast.makeText(this,menuitem.title.toString(),Toast.LENGTH_LONG).show()



override fun onCreateOptionsMenu(menu: Menu?): Boolean {

        getMenuInflater().inflate(R.menu.gecmissiparis, menu);
        this.menuList=menu
        if(updateTitle)
        { 
            val menuitem=menuList!!.findItem(R.id.adres)            
            menuitem.setTitle("asdklzmfkldfvsas")
            updateTitle = false
        }
        return super.onCreateOptionsMenu(menu)
    }

文本的更改需要发生在OnCreationsMenutried内部,没有任何事情发生更改。您确定
R.id.adres
是您要更新的项目的id吗?是的,双重检查我为xml编辑了帖子您可以检查文本的更改需要发生在OnCreationsMenutried内部,没有任何变化您确定
R.id.adres
是您要更新的项目的id吗?是的,双重检查我为xml编辑了帖子您可以检查我在xml中编辑了帖子我添加了主活动xml的导航部分。Toast提供了新的标题,但屏幕没有改变。我用xml编辑了我的文章,我添加了主要活动xml的导航部分。Toast提供了新标题,但屏幕不变