Android没有显示菜单

时间:2017-05-30 04:55:35

标签: android menu

我是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>

6 个答案:

答案 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;意思是你说在操作栏中显示我的所有菜单,如果我的所有菜单都有空间