我是Android的新手。我在显示菜单时遇到了一些问题。我的屏幕右上角没有看到三个点。请帮我理解我的错误。谢谢你!
的活动:
public class MainActivity extends AppCompatActivity {
private EditText numb1;
private EditText numb2;
private Button btn_sum;
private Button btn_extr;
private Button btn_mult;
private Button btn_div;
private TextView result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*some code*/
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.reset:
numb1.setText("");
numb2.setText("");
break;
case R.id.exit:
fileList();
break;
}
return super.onOptionsItemSelected(item);
}
}
的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/reset"
android:title="@string/reset"
app:showAsAction="never"/>
<item android:id="@+id/exit"
android:title="@string/exit"
app:showAsAction="never"/>
</menu>
答案 0 :(得分:0)
Menu Items are not showing on Action Bar
检查此答案
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="ifRoom|withText"
android:title="@string/action_option1"/>
<item
android:id="@+id/action_settings34"
android:orderInCategory="100"
android:showAsAction="ifRoom|withText"
android:title="@string/action_option2"/>
<item
android:id="@+id/action_settings3"
android:orderInCategory="100"
android:showAsAction="ifRoom|withText"
android:title="@string/action_option3"/>
</menu>
答案 1 :(得分:0)
在您的活动中使用此代码,但您应该在其中设置操作栏。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.your_menu, menu);
return true;
}
答案 2 :(得分:0)
如果您在最旧版本的三星或其他版本上运行您的应用程序,则三个DOTS不会出现在ActionBar上
所以请尝试点击手机上的Option Key
出现三DOTS的解决方案
在您的应用程序类中调用此方法&#39; onCreate方法
private void makeActionOverflowMenuShown() {
//devices with hardware menu button (e.g. Samsung Note) don't show action overflow menu
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
Log.d(TAG, e.getLocalizedMessage());
}
}
答案 3 :(得分:0)
我也是android的新手我想你在创建内部写了onCreateOptionsMenu(菜单菜单) 试试这个
public class MainActivity extends AppCompatActivity {
private EditText numb1;
private EditText numb2;
private Button btn_sum;
private Button btn_extr;
private Button btn_mult;
private Button btn_div;
private TextView result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*some code*/
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.reset:
numb1.setText("");
numb2.setText("");
break;
case R.id.exit:
fileList();
break;
}
return super.onOptionsItemSelected(item);
}
}
答案 4 :(得分:0)
您在创建选项菜单时遇到了一个小错误。您应该在onCreate(Bundle savedInstanceState)方法之外调用onCreateOptionsMenu()和onOptionsItemSelected()方法。您可以查看以下示例:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.reset:
break;
case R.id.exit:
fileList();
break;
}
return super.onOptionsItemSelected(item);
} }
答案 5 :(得分:0)
帮助我理解我的错误 - 当然
主要罪魁祸首在于您的菜单XML文件 app:showAsAction =&#34; never&#34; 此行将此行替换为 app:showAsAction =&#34; ifRoom&# 34;
这里showAsAction设置为永远不会意味着你告诉我不要在操作栏中显示我的菜单,如果你用&#34; ifRoom&#34;意思是你说在操作栏中显示我的所有菜单,如果我的所有菜单都有空间