Android, Как создать опцию меню
Здесь я попытался сделать меню опций, но меню не отображается на экране, поэтому, пожалуйста, направляйте меня, где я делаю ошибку...
MenuTest.java
public class MenuTest extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.more_tab_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.feeds:
break;
case R.id.friends:
break;
case R.id.about:
break;
}
return true;
}
}
И мой XML файл - больше_tab_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/feeds"
android:title="Feeds"/>
<item
android:id="@+id/friends"
android:title="Friends"/>
<item
android:id="@+id/about"
android:title="About"/>
</menu>
Прошу вас,
Ответы
Ответ 1
public class MenuTest extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.more_tab_menu, menu);
// return true so that the menu pop up is opened
return true;
}
}
и не забудьте нажать кнопку меню или значок на эмуляторе или устройстве
Ответ 2
см.: ==
private int group1Id = 1;
int homeId = Menu.FIRST;
int profileId = Menu.FIRST +1;
int searchId = Menu.FIRST +2;
int dealsId = Menu.FIRST +3;
int helpId = Menu.FIRST +4;
int contactusId = Menu.FIRST +5;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(group1Id, homeId, homeId, "").setIcon(R.drawable.home_menu);
menu.add(group1Id, profileId, profileId, "").setIcon(R.drawable.profile_menu);
menu.add(group1Id, searchId, searchId, "").setIcon(R.drawable.search_menu);
menu.add(group1Id, dealsId, dealsId, "").setIcon(R.drawable.deals_menu);
menu.add(group1Id, helpId, helpId, "").setIcon(R.drawable.help_menu);
menu.add(group1Id, contactusId, contactusId, "").setIcon(R.drawable.contactus_menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
// write your code here
Toast msg = Toast.makeText(MainHomeScreen.this, "Menu 1", Toast.LENGTH_LONG);
msg.show();
return true;
case 2:
// write your code here
return true;
case 3:
// write your code here
return true;
case 4:
// write your code here
return true;
case 5:
// write your code here
return true;
case 6:
// write your code here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Ответ 3
Измените метод onCreateOptionsMenu
, чтобы вернуть true
. Чтобы процитировать документы:
Вы должны вернуть true для отображаемого меню; если вы вернете false, оно не будет показано.
Ответ 4
@Override
public boolean onCreateOptionsMenu(Menu menu) {
new MenuInflater(this).inflate(R.menu.folderview_options, menu);
return (super.onCreateOptionsMenu(menu));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.locationListRefreshLocations) {
Cursor temp = helper.getEmployee(active_employeeId);
String[] matches = new String[1];
if (temp.moveToFirst()) {
matches[0] = helper.getEmployerID(temp);
}
temp.close();
startRosterReceiveBackgroundTask(matches);
} else if (item.getItemId()==R.id.locationListPrefs) {
startActivity(new Intent(this, PreferencesUnlockScreen.class));
return true;
}
return super.onOptionsItemSelected(item);
}
Ответ 5
Заменить return super.onCreateOptionsMenu(меню); с вернуть true; в onCreateOptionsMenu
Это поможет
И вы также должны иметь метод onCreate в своей деятельности
Ответ 6
import android.app.Activity;
import android.os.Bundle;
import android.view.*;
import android.widget.*;
public class AndroidWalkthroughApp2 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// show menu when menu button is pressed
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// display a message when a button was pressed
String message = "";
if (item.getItemId() == R.id.option1) {
message = "You selected option 1!";
}
else if (item.getItemId() == R.id.option2) {
message = "You selected option 2!";
}
else {
message = "Why would you select that!?";
}
// show message via toast
Toast toast = Toast.makeText(this, message, Toast.LENGTH_LONG);
toast.show();
return true;
}
}
Ответ 7
В предыдущих ответах было рассмотрено традиционное меню, используемое в android. Их еще один вариант, который вы можете использовать, если ищете альтернативный вариант
https://github.com/AnshulBansal/Android-Pulley-Menu
Меню Pulley является альтернативой традиционному меню, которое позволяет пользователю интуитивно выбирать любой вариант для активности. Меню открывается, перетаскивая экран вниз, и в этом жесте пользователь может также выбрать любой из параметров.
Ответ 8
Программирование на Android UI немного сложнее. Чтобы включить меню "Параметры", помимо кода, который вы написали, нам также нужно вызвать setHasOptionsMenu (true) в вашем методе overriden OnCreate().
Надеюсь, это поможет вам.
Ответ 9
Если ваше устройство работает под управлением Android v.4.1.2 или ранее,
меню не отображается в панели действий.
Но доступ к нему возможен через меню - (аппаратное обеспечение) - кнопка.
Ответ 10
Добрый день
Я был проверен
И если вы выбрали Empty Activity
У вас нет встроенных функций меню
Для сборки внутри вы должны выбрать Basic Activity
Таким образом, вы Activity
запустите onCreateOptionsMenu
Или, если вы работаете с пустым Activity
с самого начала
Ченге в styles.xml
Ответ 11
Вы можете создать меню параметров, как показано ниже:
Код 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/Menu_AboutUs"
android:icon="@drawable/ic_about_us_over_black"
android:title="About US"/>
<item
android:id="@+id/Menu_LogOutMenu"
android:icon="@drawable/ic_arrow_forward_black"
android:title="Logout"/>
</menu>
Как вы можете получить меню из MENU XML (Преобразовать XML меню в Java):
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.my_options_menu,menu);
return super.onCreateOptionsMenu(menu);
}
Как получить выбранный элемент из меню:
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.Menu_AboutUs:
//About US
break;
case R.id.Menu_LogOutMenu:
//Do Logout
break;
}
return super.onOptionsItemSelected(item);
}