android - 如何获取操作栏按钮? findviewbyid 似乎不起作用

标签 android

假设我有两个按钮,一个是操作栏中的操作按钮(@+id/button1)。另一个是布局中的普通按钮(@+id/button2)。

点击按钮2时如何设置按钮1不可用?

findViewById(button1) 似乎不起作用。它将返回 null。

这是我的菜单 xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/button1" android:title="submit" android:showAsAction="always" /> </menu>

这是我的主要 Activity :

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.button1 ) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    button1 = (Button) findViewById(R.id.button1);/*which return null*/
    button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            button1.setEnabled(false);/*what i failed to do*/
        }
    });
}

最佳答案

1.在您的 Activity 类中创建一个变量 MenuItem

    MenuItem menuItem;

2。在 onCreateOptionsMenu 中找到您的变量

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.menu_main, menu);
            menuItem = menu.findItem(R.id.item_circuit);
            return super.onCreateOptionsMenu(menu);
        }
  1. 禁用 buttonClick 方法中的项目

     button2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        menuItem.setEnabled(false);
                    }
                });
    

关于android - 如何获取操作栏按钮? findviewbyid 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32197136/

相关文章:

Android 使用 MultipartEntity 将图像发布到服务器

android - Android WebView 中的触摸事件

android - 如何在android webview中模拟特定坐标处的点击?

android - 到处都找不到新的 Android 布局编辑器

android - 如何处理相机 Intent android

android - 接听电话需要 api 级别 11(当前最小值为 1)

java - 我想从图库中选择多个图像,但是选择图像后,当我单击“打开”时崩溃

java - Android:创建表时抛出错误

android - libgdx 游戏在某些设备上崩溃

android - 如何创建一个占屏幕宽度 4/5 android 的布局