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提供了新标题,但屏幕不变