单击设置图标创建新活动

时间:2014-11-15 06:56:35

标签: android menu android-actionbar

如果我点击settings图标,则必须创建新活动。但它会显示弹出搜索。我发布了相关的代码和屏幕截图。

enter image description here

enter image description here

MainActivity.java:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) 
    {
       switch (item.getItemId()) 
       {
         case R.id.search:
            Intent intent = new Intent(this, SettingsActivity.class);
      //      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(intent);
            return true;
         default:
            return super.onOptionsItemSelected(item);
       }
    }

main.xml中:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" >

    <item
        android:id="@+id/search"
        android:icon="@drawable/ic_action_settings"
        android:title="@string/search"/>

</menu>

如果我点击该图标,则必须创建新活动。但是它会显示弹出窗口search。我不需要弹出窗口。只需点击它就可以移动到新活动设置图标。到目前为止,我完成了这样的代码。

3 个答案:

答案 0 :(得分:5)

您必须添加商品标记

android:showAsAction="always"

然后没有弹出窗口。

答案 1 :(得分:2)

将xml更改为:

<item
    android:id="@+id/search"
    android:icon="@drawable/ic_action_settings"
    app:showAsAction="always"
    android:title="@string/search"/>

或者你也可以试试android:showAsAction =&#34; always&#34;正如国家行动计划所建议的那样。

答案 2 :(得分:0)

您正在覆盖onOptionsItemSelected,但您正在编写用于在点击菜单项Seach中启动活动的代码。而不是你需要在settings点击

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
   switch (item.getItemId()) 
   {
       case R.id.settings:
           Intent intent = new Intent(this, SettingsActivity.class);
           startActivity(intent);
           return true;
       default:
           return super.onOptionsItemSelected(item);
    }
}

希望这有帮助。