Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android工具栏操作图标不工作_Android_Toolbar_Android Toolbar - Fatal编程技术网

Android工具栏操作图标不工作

Android工具栏操作图标不工作,android,toolbar,android-toolbar,Android,Toolbar,Android Toolbar,我的应用程序中有两个材质工具栏,我有两个menu\u main.xml和menu\u main2.xml。图标正确显示在两个工具栏中,但其中一个工具栏上的操作不起作用。我怎样才能修好它 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Setup Toolbar

我的应用程序中有两个材质工具栏,我有两个
menu\u main.xml
menu\u main2.xml
。图标正确显示在两个工具栏中,但其中一个工具栏上的操作不起作用。我怎样才能修好它

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Setup Toolbar
    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);
    toolbar2 = (Toolbar) findViewById(R.id.tool_bar2);
    toolbar2.inflateMenu(R.menu.menu_main2);
这是我的选择

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}
和OnOptions ItemSelected

@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();
    web1 = (WebView) findViewById(R.id.web1);
    web2 = (WebView) findViewById(R.id.web2);
    web3 = (WebView) findViewById(R.id.web3);
此操作有效,它来自工具栏

   if (id == R.id.action_google) {
        web1.setVisibility(View.GONE);
        web2.setVisibility(View.GONE);
        web3.setVisibility(View.VISIBLE);
    }
这是工具栏2上的,它不工作

    if (id == R.id.action_naver) {
        web1.setVisibility(View.VISIBLE);
        web2.setVisibility(View.GONE);
        web3.setVisibility(View.GONE);
    }

OnOptions ItemSelected只拾取第一个工具栏,因为这是唯一一个设置为supportActionBar的工具栏。对于另一个工具栏,您必须为项目设置单击侦听器。正如heloisasim所建议的,您可以使用setOnMenuItemClickListener方法来执行此操作。

您可以对每个工具栏使用setOnMenuItemClickListener而不是OnOptions ItemSelected吗?@heloisasim谢谢!它工作得很好。
toolbar2.setOnMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem arg0) {
            if(arg0.getItemId() == R.id.whatever){

            }
            return false;
        }
    });