Android не показывает меню

119
17

Я новичок в 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>

спросил(а) 2021-01-19T08:56:32+03:00 6 месяцев, 1 неделя назад
1
Решение
110

Я также новичок в 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);
}

}

ответил(а) 2021-01-19T08:56:32+03:00 6 месяцев, 1 неделя назад
45

Элементы меню не отображаются на панели действий.

Проверьте этот ответ

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

ответил(а) 2021-01-19T08:56:32+03:00 6 месяцев, 1 неделя назад
45

если вы запустите приложение на самой старой версии samsung или другой, три DOTS не отображаются в ActionBar

поэтому попробуйте нажать кнопку Option на мобильном телефоне

Решение о появлении Три DOTS

    вызовите этот метод в вашем классе приложения 'onCreate method

    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());
    }
    }

ответил(а) 2021-01-19T08:56:32+03:00 6 месяцев, 1 неделя назад
45

Вы сделали небольшую ошибку при создании меню параметров. Вы должны вызывать метод onCreateOptionsMenu() и onOptionsItemSelected() вне метода onCreate (Bundle savedInstanceState). вы можете проверить следующий пример:

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);
} }

ответил(а) 2021-01-19T08:56:32+03:00 6 месяцев, 1 неделя назад
45

Используйте этот код в своей деятельности, но в нем должна быть панель действий.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.your_menu, menu);
return true;
}

ответил(а) 2021-01-19T08:56:32+03:00 6 месяцев, 1 неделя назад
46

Помогите мне понять мою ошибку - Конечно

Главный виновник находится в вашем приложении XML файла меню : showAsAction = "никогда" эта строка не заменяет эту строку приложением: showAsAction = "ifRoom"

здесь showAsAction настроен никогда не означает, что вы говорите, что не показываете мое меню в панели действий, если вы заменяете "ifRoom", значит, вы сказали, что показываете мое все меню в панели действий, и если есть место для всех моих меню

ответил(а) 2021-01-19T08:56:32+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема