有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java OnOptions ItemSelected在安卓中不工作?

我有一个menu_item,下面是代码:

 <item
    安卓:id="@+id/action_search"
    安卓:actionViewClass="安卓.widget.TextView"
    安卓:title="In Stocks"
    app:showAsAction="always" />

<item
    安卓:id="@+id/action_checkbox"
    app:actionViewClass="安卓.widget.CheckBox"
    安卓:title="@string/action_check"
    app:showAsAction="always"
    />

我试图捕获Menu_item_clicked_event,所以,我在Activity文件中编写以下代码

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    switch (id) {
        case R.id.action_checkbox:
            if (item.isChecked()) item.setChecked(false);
            else item.setChecked(true);
            return true;
        case R.id.action_search:
            System.out.println("xas");
        default:
            return super.onOptionsItemSelected(item);
    }
}

当我按下action_search键时,它在工作,但不适用于action_checkbox。为什么会这样?我在{方面也不例外。这是检查^{的正确方法吗


共 (1) 个答案

  1. # 1 楼答案

    app:actionViewClass应该是android:actionViewClass=“android.widget.CheckBox”

     <item
            android:id="@+id/action_checkbox"
            android:actionViewClass="android.widget.CheckBox"
            android:icon="@drawable/unchecked"
            android:checkable="true"
            android:checked="false"
            android:title="@string/action_check"
            app:showAsAction="always"
            />
    

    然而,复选框将不可见Referthis

    你可以拥有自己的图标,并将其设置为android:icon=

    在课堂上

    case R.id.action_checkbox:
            if(item.isChecked()){
            item.setIcon(R.drawable.unchecked);
            }
            else {
            item.setIcon(R.drawable.checked);
            }
        item.setChecked(!item.isChecked());
    break;