Menu
Jest wolny
rejestracja
Dom  /  Rada/ Jak dodać przycisk menu na Androidzie. Jak otworzyć i skonfigurować menu inżynierskie na Androidzie - instrukcje i tajne kody

Jak dodać przycisk menu na Androidzie. Jak otworzyć i skonfigurować menu inżynierskie na Androidzie - instrukcje i tajne kody

Stwórzmy więc dzisiaj proste menu dla aplikacji na Androida. Stwórzmy nowy projekt... Nazwijmy to Mymenu, kliknij Dalej. Wybierzmy Puste działanie. Kliknij Zakończ.

System Android Studio przygotuje dla nas nowy projekt, przejdźmy do skryptów gradle. W Gradle kompilacji dodajmy nową implementację. Potrzebujemy pakietu

implementacja "com.android.support:design:26.0.0-beta1"

Przynajmniej w moim projekcie. Kliknij Synchronizuj projekt.

Elementy menu

Przejdźmy do folderu Res i utwórzmy w nim nowy folder zasobów Androida z typem zasobu - menu. W nim utworzymy nowe menu pliku zasobów. Plikowi nadamy nazwę, a także nazwę folderu - menu.

W naszym głównym menu, przeciągając i upuszczając, dodaj MenuItem w ilości 3 sztuk.

W pliku strings.xml wpisz nową nazwę dla pozycji menu, tworząc dla nich dodatkowe wartości ciągu.

Niech element 1 będzie elementem 1, element 2 będzie elementem 2, a elementem 3 będzie Wyjście.

Paragraf 1 Punkt 2 Wyjście

W tekstowej wersji menu.xml przypiszemy naszym elementom nazwy z strings.xml. Również dla każdego elementu dodamy Androida: id o nazwie action1, action2, action3,

do interakcji z tymi elementami. Akcja numer 1 będzie odpowiedzialna za coś, jakaś reakcja, naciśnięcie odpowiednio Akcji 2 będzie odpowiedzialne za inne akcje, Akcja 3 będzie odpowiedzialna za wyjście z aplikacji.

W pliku MainActivity napiszemy kilka funkcji do pracy z menu:

onCreateOptionsMenu @Override public boolean onCreateOptionsMenu (menu menu) (getMenuInflater (). inflate (R.menu.menu, menu); return true;) onOptionsItemSelected @Override public boolean onOptionsItemSelected (pozycja MenuItem) (int id switch (id) (przypadek R .id.action1: txt.setText (R.string.item1); return true; wielkość liter R.id.action2: txt.setText (R.string.item2); return true; wielkość liter R. id.action3: txt.setText (R.string.item3); finish (); return true;) return super.onOptionsItemSelected (item);)

Zadeklarujmy zmienną typu TextView txt i powiążmy ją z elementem TextView w onCreate via

txt = (TextView) findViewById (R.id.txt),

w układzie activity_main.xml poprzez dodanie go

android: id = "@ + id / txt"

aby wyświetlić tekst.

Zacznijmy naszą aplikację w emulatorze. Jak widać, pojawiają się pozycje menu, po kliknięciu wartości pozycji 1 lub 2, tekst zmienia się na pozycję 1 lub pozycję 2, po kliknięciu przycisku Zakończ pojawia się tekst Zakończ i aplikacja zostaje zamknięta.

Układ menu

Wszystko wydaje się być w porządku. Jednak jak zawsze w Androidzie Studio podane menu będzie działać tylko na emulatorze, dlatego dodamy mały kod do pliku styles.xml, a wcześniej zmienimy w AndroidManifest.xml

android: motyw = "@styl / Motyw aplikacji"

android: theme = "@style / AppTheme.NoActionBar"

co mówi, że nowy styl bez ActionBara. Ponadto w MainActivity onCreate dodaj zmienną paska narzędzi z typem ToolBar. Zdefiniujmy to za pomocą paska narzędzi = (pasek narzędzi) findViewById (R.id.toolbar) i włącz obsługę setSupportActionBar (pasek narzędzi).

Dodaj następujący kod do układu activity_main.xml przed TextView:

Połączmy te widżety z importem naszej aplikacji.

importuj android.support.v7.widget.Toolbar;

Naciśnij Alt + Enter, a my dodamy, zaktualizujemy import naszej aplikacji. Być może będziesz musiał zrobić kilka razy, aby połączyć widżet. Kliknij Zapisz.

Możemy teraz uruchomić naszą aplikację w emulatorze. Wszystko wygląda dokładnie tak samo, ale bez tego kodu nie można zainstalować naszej aplikacji na prawdziwym urządzeniu. Zróbmy podpisany wniosek.

Dawno, dawno temu, około 5 lat temu, urządzenia z systemem operacyjnym Android szybko zyskiwały na popularności. To był dobry czas, świat wychodził z kryzysu, przed nami wiele ciekawych rzeczy, a na każdym urządzeniu był przycisk Menu.
Dwa lata później chłopaki z Androida poinformowali, że przycisk „menu” na obudowie telefonu nie jest już modny i można się bez niego obejść. Od tego czasu każdy z nas (Gildia Deweloperów) wie, jak wywołać menu na zdecydowanej większości urządzeń z Androidem.
Niektórym może się to wydawać okropnym akordeonem guzikowym, ale w zeszłym tygodniu spędziliśmy 2 godziny naszego życia, próbując to wyjaśnić użytkownikowi. Nie mogłem się z tym pogodzić, dlatego poniżej podaję opis, jak wywołać funkcję menu na urządzeniach z Androidem.
Tak wyglądają mechaniczne przyciski menu na większości popularnych urządzeń:

Co więcej, w większości przypadków wystarczy jedno krótkie dotknięcie, aby wywołać funkcję menu. Jednak często do przycisku wyboru można dodać wywołanie menu uruchomione aplikacje... To wygląda tak:


W takim przypadku otworzy się menu tylko przy długim naciśnięciu(tzw. długie kliknięcie)! To jest nie tylko szturchnął palcem, ale szturchnął i przytrzymał... Wiele osób mówi po tym Wow!

Właścicielom tabletów radzę zwrócić uwagę miejsce pracy na ekranie znajdują się najczęściej przyciski, w tym Menu.


Co więcej, po prawej stronie nie zawsze jest to maksimum, ale ten przycisk wygląda dokładnie tak.
Na świeże wersje Przycisk menu systemu operacyjnego Android wygląda tak.

Jest wiele ukryte funkcje co może być bardzo pomocne. Jednym z nich jest Tuner UI systemu. Po aktywowaniu tego menu użytkownik otrzymuje więcej opcji w zakresie personalizacji. Interfejs Androida... W jednym z artykułów na Treshbox już jesteśmy.

Niektórzy programiści dostosowali już System UI Tuner do potrzeb. zwykli użytkownicy... Na przykład, który był również dostępny na poprzednie wersje Android używa tunera interfejsu użytkownika do dodawania niestandardowych przycisków do menu szybkich akcji, które wysuwa się od góry wraz z kurtyną powiadomień. Fajną rzeczą jest to, że w systemie Android 6.0 Marshmallow korzystanie z niestandardowych szybkich ustawień nie wymaga uprawnień administratora.

Jak to działa

Przede wszystkim musisz aktywować to samo menu System UI Tuner, które działa tylko na stajni Wersja na Androida 6,0 Ptasie mleczko. Niektóre wersje zapoznawcze Androida M nie zawierały tej funkcji. O aktywacji UI Tunera przeczytacie w naszym odpowiednim artykule, ale jeśli nie chcecie gdzieś skakać z tego materiału, to: całkowicie otwórzcie górną „kurtynę” szybkimi akcjami i powiadomieniami, przytrzymajcie przycisk z kołem zębatym który prowadzi w menu ustawień - wszystko, Tuner UI systemu jest aktywowany. Teraz w menu ogólnym Ustawienia Androida pojawił się odpowiedni element, ale praktycznie go nie będziesz potrzebować. Aplikacja Niestandardowe szybkie ustawienia zrobi to wszystko za Ciebie.


Następnie zainstaluj samą aplikację Niestandardowe szybkie ustawienia, która jest dostępna bezpłatnie, ale z reklamami. Jest usuwany poprzez zakupy wewnętrzne - 99 rubli.


Po zainstalowaniu aplikacji można dodać niestandardowy przycisk z akcją w górnym menu z kilkoma akcjami. Klikając na Niestandardowe szybkie ustawienia plus, możesz wybrać nazwę przycisku, jego działanie polega na otwarciu dowolnej określonej strony internetowej, uruchomieniu aplikacji, przejściu do podmenu niektórych ustawień lub aktywacji modułu. Dla przycisku możesz wybrać ikonę (w sumie dostępnych jest 1200 standardowych elementów; obsługiwane są niestandardowe), a także dodatkową akcję po długim naciśnięciu. Na przykład możesz utworzyć szybki link do Kosza, a długie naciśnięcie otworzy lub dowolną inną witrynę - bardzo wygodna rzecz.

Możliwości

Możesz także wykonać szybką akcję, która połączy urządzenie z określoną siecią Wi-Fi, znajdującą się na zapisanej liście. Niestandardowe przyciski z uruchamianiem aplikacji będą bardzo przydatne - nie ma potrzeby wychodzenia na pulpit, aby je otworzyć żądany program.

Możliwości w zakresie tworzenia szybkich akcji są bardzo ograniczone - możesz ustawić połączenie tylko z konkretnym Sieci Wi-Fi lub urządzenie Bluetooth. Wszystko tutaj opiera się na funkcjonalności System UI Tuner.


W wersji Pro aplikacji możesz dodać funkcjonalne skróty z szybkimi akcjami. Istnieje wsparcie dla IFTTT. Warto zauważyć, że wszystkie niestandardowe przyciski dodane za pomocą niestandardowych szybkich ustawień nie działają na ekranie blokady – po prostu nie pojawiają się w migawce, co jest dość oczekiwane.

Przypomnijmy, że wszystkie te funkcje są również dostępne w systemie Android 5.0/5.1, ale są do tego niezbędne. Deweloper zwraca uwagę, że niestandardowe szybkie ustawienia nie zużywają dodatkowej energii baterii - program jest uruchamiany raz przy starcie systemu, a niestandardowe przyciski są aktualizowane dopiero po tym, jak zrobi to użytkownik.

Miło widzieć, jak sala operacyjna System Android z każdym Nowa wersja przejmuje funkcje, które wcześniej były dostępne tylko z prawami administratora. Mamy nadzieję, że w przyszłości Google nie usunie funkcji System UI Tuner. Aktualizacja Androida 6.0.1 lub 6.1. A tak przy okazji, czy już uaktualniłeś do Marshmallow?

Android obsługuje kilka rodzajów menu. Po pierwsze, w telefonie jest osobny przycisk. Menu(w starszych telefonach), naciśnięcie powoduje wyświetlenie menu. W nowych urządzeniach usunięto osobny przycisk, zastępując go ikoną menu w postaci trzech kropek w orientacji pionowej. Drugi typ to menu kontekstowe, które pojawia się po naciśnięciu i przytrzymaniu palca na ekranie w żądanym miejscu (można też nacisnąć i przytrzymać środkowy przycisk na telefonie). Menu kontekstowe z kolei może mieć podmenu. Dzisiaj przyjrzymy się pierwszemu rodzajowi menu. W tym artykule rozważymy pracę z menu na nowych urządzeniach pod Android 4.0 i wyżej.

W szablonie Pusta aktywność nie ma menu, więc sami je stworzymy. Pomoże Ci to zrozumieć, jak to działa i uzyskać przegląd projektu. Nie trzeba pamiętać nazw klas, metod i kodu do obsługi wyboru menu. W innych szablonach menu zostanie wbudowane i będziesz mógł od razu z niego skorzystać.

Utwórz nowy projekt na podstawie Pusta aktywność i uruchom go. Nie ma jeszcze menu.

Utwórzmy w pliku zasoby tekstowe res / wartości / strings.xml który będzie odpowiedzialny za pozycje menu:

Ustawienia Kot Kot Koteczek

Teraz utwórz nowy folder menu w folderze res res, | Nowy | Informator). Następnie utwórz plik w utworzonym folderze menu_main.xml- nazwa wskazuje, że menu jest związane z główną działalnością Główna aktywność(kliknij prawym przyciskiem myszy na folder menu | Nowy | Plik zasobów menu). Jeśli zamierzasz stworzyć aplikację z kilkoma ekranami, to każda czynność będzie miała osobne menu z własnymi ustawieniami. Na razie otwórzmy plik menu_main.xml i dodaj nasz kod do powstałego szablonu:

Otwórzmy plik Główna aktywność... Teraz jest tylko jedna metoda naUtwórz ()... Dodajmy nową metodę onCreateOptionsMenu ()... Dokładnie tak Ta metoda odpowiada za wygląd menu dla aktywności. Wybierz menu w studio Kod| a w kolejnym oknie zacznij wpisywać nazwę metody od pierwszych liter. Możesz wpisać używając pierwszych wielkich liter, tj. ocom ( o n C reate O opcje m enu), aby szybko znaleźć żądaną linię. Wciśnij guzik ok i otrzymujemy obrabiany przedmiot.

@Override public boolean onCreateOptionsMenu (menu Menu) (zwróć super.onCreateOptionsMenu (menu);)

Dodaj do szablonu metodę, która pobiera dane z zasobów menu i konwertuje je na elementy menu na ekranie.

@Override public boolean onCreateOptionsMenu (menu Menu) (getMenuInflater (). Inflate (R.menu.menu_main, menu); return true;)

W metodzie nadmuchać () wskazujesz na zasób menu ( R.menu.menu_main) i obiekt klasy Menu.

W języku angielskim „inflate” jest tłumaczone jako inflate, tj. Zgodnie z zamysłem twórców Androida, nadmuchujemy obiekt, na przykład menu, danymi. Ale w rzeczywistości słowo „napompować” pochodzi od wyrażenia w mieszkaniu- do mieszkania. Istnieje stara tradycja, aby najpierw wpuścić kota do mieszkania, który bada wszystkie zakamarki domu i deklaruje zgodę na zamieszkanie w nim. W ten sposób uruchamiamy dane z pliku XML do obiektu MenuInflater.

Uruchom projekt. Teraz po prawej stronie nagłówka zobaczysz ikonę trzech kropek ułożonych w pionową linię. Kliknij ikonę, aby zobaczyć element menu Ustawienia.

Jak można się domyślić, żywioł przedmiot odpowiedzialny za osobną pozycję menu. Dodajmy w ten sam sposób jeszcze trzy pozycje, zmieniając tylko identyfikator i tekst dla menu:

Uruchom projekt i spróbuj ponownie wywołać menu. Zobaczysz trzy nowe przedmioty.

Opcje NS oraz tytuł nie trzeba wyjaśniać. Parametr orderInCategory umożliwia ustawienie własnej kolejności wyświetlania pozycji menu. Załóżmy, że utworzyłeś pięć pozycji menu, ale nie zdecydowałeś jeszcze, w jakiej kolejności pojawiają się na ekranie. Aby nie przesuwać całych bloków kodu dla pozycji menu w żądanej kolejności, możesz użyć tego parametru.

I wreszcie ważny atrybut aplikacja: showAsAction określa zachowanie menu w ActionBar... Oznaczający nigdy oznacza, że ​​pozycja menu nie powinna pojawiać się w nagłówku, a jedynie w menu podręcznym, tj. być za trzema punktami. Jeśli ustawisz wartość zawsze następnie przedmiot Ustawienia pojawi się natychmiast w nagłówku Twojej aplikacji. Dostępne również wartości ifRooms, z tekstem oraz zwińWidokAkcji... Spróbuj sam. Na przykład, ifRoom wyświetla pozycję menu, jeśli pozwala na to miejsce. Jeśli jest dużo punktów, będą tylko przeszkadzać. Z reguły ta opcja wyświetla bardzo krótkie słowo lub ikonę dla częstych operacji, aby uniknąć niepotrzebnego klikania trzech kropek.

Zwróć uwagę na atrybut aplikacja: showAsAction który należy do przestrzeni nazw xmlns: aplikacja = "http://schemas.android.com/apk/res-auto"... Był czas, kiedy taka przestrzeń nazw nie istniała, a projekty używały atrybutu android: pokażAkcję ze standardowej przestrzeni nazw. Jeśli studio skarży się na błąd, edytuj kod.

Dopóki pozycje menu nie przydadzą się. Każde kliknięcie elementu po prostu zamyka menu bez widocznych konsekwencji. Nie napisaliśmy jeszcze żadnego kodu do obsługi kliknięć.

Wybór pozycji menu

Nauczyliśmy się tworzyć menu. Ale jak dotąd jest to bezużyteczne, ponieważ pozycje menu nie reagują w żaden sposób na nasze kliknięcia. Do przetwarzania kliknięć elementów menu używana jest inna metoda. onOptionsItemSelected ()... Dodajmy metodę w taki sam sposób, jak w poprzednim przykładzie. Zróbmy puste miejsce.

@Override public boolean onOptionsItemSelected (pozycja MenuItem) (zwraca super.onOptionsItemSelected (pozycja);)

Parametr przedmiot odpowiedzialny za pozycję menu. Powinieneś uzyskać identyfikator menu za pomocą tej metody getItemId () i podaj na to kod. Ponieważ menu zwykle składa się z kilku pozycji, wygodnie jest korzystać z konstrukcji Jeśli inaczej lub przełącznik... Aby wyświetlić informacje, użyjemy etykiety tekstowej. Dodaj komponent do ekranu aktywności Widok tekstu... Możesz użyć istniejącego Widok tekstu oznaczone „Hello World!”, po prostu nadaj mu identyfikator.

android: id = "@ + id / textView" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Witaj świecie!" />

Dodajmy kod do szablonu dla wybranej pozycji menu:

@Override public boolean onOptionsItemSelected (pozycja MenuItem) (// pobierz identyfikator wybranej pozycji menu int id = item.getItemId (); TextView infoTextView = (TextView) findViewById (R.id.textView); // Operacje dla wybranej pozycji przełącznik pozycji menu ( id) (case R.id.action_cat1: infoTextView.setText ("Wybrałeś kota!"); return true; case R.id.action_cat2: infoTextView.setText ("Wybrałeś kota!") ); return true; case R. id.action_cat3: infoTextView.setText ("Wybrałeś kotka!"); return true; default: return super.onOptionsItemSelected (item);))

Uruchom aplikację, otwórz menu i wybierz dowolny element menu. W polu tekstowym powinien pojawić się komunikat.

istnieje alternatywny sposób za pośrednictwem XML, podobnie jak obsługa kliknięć przycisków (od Androida 3.0). Możesz dodać atrybut android: po kliknięciu w zasobach menu i nie musisz używać wywołania metody onOptionsItemSelected ()... Z pomocą android: po kliknięciu możesz określić żądaną metodę podczas wybierania pozycji menu. Dodać dany atrybut do przedmiotu Ustawienia

Teraz w kodzie aktywności napiszmy:

// atrybut pozycji menu Ustawienia jest ustawiony na android: onClick = "onSettingsMenuClick" public void onSettingsMenuClick (pozycja MenuItem) (TextView infoTextView = (TextView) findViewById (R.id.textView); infoTextView.setText ("Wybrałeś element Ustawienia , lepiej wybrałbym kota ");)

Przełączniki

Możesz zmienić wygląd elementów menu na widok przycisków radiowych. Aby to zrobić, musisz dodać element Grupa z atrybutem android: checkableBehavior = "pojedynczy":

Nie widzę w tym trybie większego sensu. I nie będziemy tego rozważać.

Tryb projektowania

Android Studio 2.2 dodał graficzny tryb budowania menu, który jest podobny do paska narzędzi do dodawania nowych komponentów do ekranu. Pasek menu składa się z czterech elementów: Pozycja w menu, Wyszukaj przedmiot , Menu, Grupa.

Zasada jest taka sama, wybierasz wymagany element i przeciągnij go na ekran do obszaru menu. Jeśli zastanawiałeś się nad ręcznym tworzeniem menu, to tą drogą nie sprawi ci żadnych trudności. Pozwala szybko naszkicować strukturę menu, a następnie ręcznie ją dostosować.