3

我正在为 API 级别 10 的应用程序使用 ActionBarSherlock 库。我想知道是否有可能有一个操作图标在单击时没有响应。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/mainTopBluetoothState"
        android:icon="@drawable/bt_not_connected"
        android:orderInCategory="0"
        android:clickable="false"
        android:showAsAction="ifRoom" />

    <item android:id="@+id/mainTopAppState"
        android:title="App State"
        android:orderInCategory="1"
        android:showAsAction="ifRoom" />

</menu>

android:clickable="false"不会产生错误,但在应用程序运行时按下操作仍会做出反应。

4

3 回答 3

12

尝试android:enabled setEnabled()在运行时在MenuItem.

于 2013-01-23T16:46:45.027 回答
2
mymenu.getItem(0//item number).setEnabled(false);

当你setClickable想写这个时......

mymenu.getItem(0).setEnabled(true);
于 2017-03-13T07:25:37.050 回答
1

你可以这样做onPrepareOptionsMenu(Menu menu)

@Override
public boolean onPrepareOptionsMenu (Menu menu){
    super.onPrepareOptionsMenu(menu);

        MenuItem myItem = menu.findItem(R.id.myId);
        myItem.setEnabled(false);

    return true;  
}

文档建议它这样做。

准备要显示的屏幕标准选项菜单。每次显示菜单时,都会在菜单显示之前调用它。您可以使用此方法有效地启用/禁用项目或以其他方式动态修改内容。

于 2013-01-23T16:48:31.817 回答