我一直在尝试为我的Android应用程序添加一项功能,以便当我点击一个按钮时,菜单列表应该是可见的:
这是我的代码:
menu.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"
tools:context="com.example.MainActivity" >
<item android:id="@+id/action_onthego_sentence"
android:title="settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
在主要活动中,点击按钮后,我会:
button.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick( View view )
{
runOnUiThread( new Runnable()
{
@Override
public void run()
{
openOptionsMenu();
}
} );
}
} );
我需要的是:
如图所示,我希望看到菜单已打开。有什么建议吗?
答案 0 :(得分:3)
如果您在应用中使用自定义工具栏,则以下方式将非常有用,
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
toolbar.showOverflowMenu();
}
}, 500);
答案 1 :(得分:1)
使用:
error: cannot find symbol
import android.support.v4.app.DialogFragment;
^
error: cannot find symbol
import android.support.v4.app.FragmentActivity;
然后,检查您的工具栏是否可以。
MainActivity.this.openOptionsMenu();
答案 2 :(得分:1)
在菜单布局中使用它:
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="Setting"
app:showAsAction="ifRoom" />
答案 3 :(得分:1)
你好亲爱的,如果你使用工具栏代码
toolbar.showOverflowMenu();
另外你可以直接打电话
MainActivity.this.openOptionsMenu();
答案 4 :(得分:0)
尝试以下解决方案将显示点击按钮菜单列表应该是可见的:
<强> RES /菜单/ main.xml中强>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_changeLang"
android:orderInCategory="100"
android:title="Change Lang" />
<item
android:id="@+id/action_color"
android:orderInCategory="100"
android:title="Select color" />
<item
android:id="@+id/action_applist"
android:orderInCategory="100"
android:title="App List" />
</menu>
<强> 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) {
int id = item.getItemId();
switch (id) {
case R.id.action_changeLang:
// Add your code
break;
case R.id.action_color:
// Add your code
break;
case R.id.action_applist:
// Add your code
break;
}
return super.onOptionsItemSelected(item);
}
尝试使用上述解决方案。它对我有用