gpt4 book ai didi

android - 如何在应用程序运行时控制操作栏按钮?

转载 作者:行者123 更新时间:2023-11-29 21:12:17 25 4
gpt4 key购买 nike

我有一个操作栏,它在程序启动时显示。其中一项 ( id/action_delete' 的 enabled 属性为 false。在应用程序运行时如何通过其他方法控制它以使其为真。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.list_tasks, menu);
return super.onCreateOptionsMenu(menu);
}

布局菜单:

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

<item
android:id="@+id/action_delete"
android:showAsAction="always"
android:enabled="false"
android:title="Delete"/>
<item
android:id="@+id/action_new"
android:showAsAction="always"
android:title="New"/>

</menu>

点击事件

@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3)
{


setStatus = true;
invalidateOptionsMenu();
}

onPrepareOptionsMenu

@Override
public boolean onPrepareOptionsMenu(Menu menu)
{

MenuItem item = menu.findItem(R.id.action_delete_assignment);

if (setStatus)
{
item.setEnabled(true);
}
return super.onPrepareOptionsMenu(menu);

}

最佳答案

我不确定我是否理解您的问题。我猜您想动态更改操作栏中的操作项。

使用 onPrepareOptionsMenu() 方法。

 @Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuItem item = menu.findItem(R.id.action_delete);
//show the action item
if (your condition) {
item.setEnabled(true);
item.setVisible(true);
}
super.onPrepareOptionsMenu(menu);
return true;
}

您还应该覆盖 Activity class 中的 invalidateOptionsMenu() 方法这将声明选项菜单已更改,并将调用 onPrepareOptionsMenu 方法重新创建菜单。

关于android - 如何在应用程序运行时控制操作栏按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22437512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com