it-roy-ru.com

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-файл more_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>

Пожалуйста, ведите меня, 

55
vishesh chandra
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; 
    }
}

и не забудьте нажать кнопку меню или значок на эмуляторе или устройстве

60
DEVANG SHARMA

пожалуйста, смотрите: ==

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);
    }
}
30
Patel Ekta

Измените свой метод onCreateOptionsMenu, чтобы он возвращал true. Цитировать документы :

Вы должны вернуть true для отображения меню; если вы вернете false, оно не будет показано.

11
Felix
@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);
}   
9
Mayank Saini
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;
    }
}
2
Durul Dalkanat

Заменить вернуть super.onCreateOptionsMenu (menu); с return true; в вашем методе onCreateOptionsMenu Это поможет

И вы также должны иметь метод onCreate в вашей деятельности

2
ReNa

Предыдущие ответы охватили традиционное меню, используемое в Android. Это еще один вариант, который вы можете использовать, если вы ищете альтернативу

https://github.com/AnshulBansal/Android-Pulley-Menu

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

0
Anshul Bansal

Добрый день Я был отмечен И если вы выбрали Пустой Activity У вас нет встроенных функций меню Для встраивания вы должны выбрать Basic Activity Таким образом, вы будете запускать ActivityonCreateOptionsMenu

Или, если вы работаете в Пустой Activity от начала Изменить styles.xml

0
Michael

Программирование пользовательского интерфейса Android немного сложнее. Чтобы включить меню «Параметры», в дополнение к написанному вами коду, нам также необходимо вызвать setHasOptionsMenu (true) в переопределенном методе OnCreate () . Надеюсь, это поможет вам.

0
anhldbk

ЕСЛИ ваше устройство работает под управлением Android v.4.1.2 или более ранней версии,
меню не отображается в панели действий.
Но к нему можно получить доступ через Меню- (аппаратная) -Кнопка.

0
Computerkaste