如果我点击settings
图标,则必须创建新活动。但它会显示弹出搜索。我发布了相关的代码和屏幕截图。
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
。我不需要弹出窗口。只需点击它就可以移动到新活动设置图标。到目前为止,我完成了这样的代码。
答案 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);
}
}
希望这有帮助。