Menü
Bedava
kayıt
ev  /  Tavsiye/ Android'de bir menü düğmesi nasıl eklenir. Android'de mühendislik menüsü nasıl açılır ve yapılandırılır - talimatlar ve gizli kodlar

Android'de bir menü düğmesi nasıl eklenir. Android'de mühendislik menüsü nasıl açılır ve yapılandırılır - talimatlar ve gizli kodlar

O halde bugün bir Android uygulaması için basit bir menü oluşturalım. hadi oluşturalım yeni proje... Buna Mymenu diyelim, ileriyi tıklayın. Boş Etkinlik'i seçelim. Bitir'i tıklayın.

Android studio sistemi bizim için yeni bir proje hazırlayacak, gelelim gradle scriptlerine. Build gradle'da yeni bir uygulama ekleyelim. bir pakete ihtiyacımız var

"com.android.support:design:26.0.0-beta1" uygulaması

En azından benim projemde. Projeyi Senkronize Et'e tıklayın.

Menü öğeleri

Res klasörüne gidelim ve içinde kaynak türü - menüsü ile yeni bir Andriod kaynak klasörü oluşturalım. İçinde yeni bir kaynak dosyası menüsü oluşturacağız. Dosyaya bir ad ve klasör adı - menü atayacağız.

Ana menümüzde sürükle bırak yöntemiyle 3 adet olacak şekilde MenuItem ekleyiniz.

strings.xml dosyasında, menü öğeleri için ek dize değerleri oluşturarak yeni bir ad yazın.

Öğe1 Öğe 1, öğe2 Öğe 2 ve öğe3 Çıkış olsun.

Paragraf 1 2. nokta çıkış

menu.xml'nin metin versiyonunda, öğelerimize strings.xml'den isimler atayacağız. Ayrıca her öğe için bir Android: id adında action1, action2, action3,

Bu öğelerle etkileşime geçmek için Eylem numarası 1 bir şeyden sorumlu olacak, bir tür tepki, sırasıyla Eylem 2'ye basmak, diğer eylemlerden sorumlu olacak, Eylem 3, uygulamadan çıkmaktan sorumlu olacaktır.

MainActivity dosyasında menü ile çalışmak için birkaç fonksiyon yazacağız:

onCreateOptionsMenu @Override public boolean onCreateOptionsMenu (Menü menüsü) (getMenuInflater ().inflate (R.menu.menu, menu); return true;) onOptionsItemSelected @Override public boolean onOptionsItemSelected (MenuItem öğesi) (intcase id anahtarı (id) .id.action1: txt.setText (R.string.item1); doğru dönüş; durum R.id.action2: txt.setText (R.string.item2); doğru dönüş; durum R. id.action3: txt.setText (R.string.item3); bitiş (); true döndür;) super.onOptionsItemSelected (öğe);) döndür

TextView txt türünde bir değişken tanımlayalım ve onu onCreate'de TextView öğesine bağlayalım.

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

aktivite_main.xml düzeninde ekleyerek

android: id = "@ + id / txt"

metni görüntülemek için

Emulatörde uygulamamıza başlayalım. Gördüğünüz gibi menü maddeleri çıkıyor, Item 1 veya 2 değerine tıkladığınızda yazı Item 1 veya Item 2 olarak değişiyor, Exit butonuna tıkladığınızda Exit yazısı çıkıyor ve uygulama kapanıyor.

Menü düzeni

Her şey yolunda gibi görünüyor. Ancak, her zaman olduğu gibi Android'de stüdyo verildi menü sadece emülatörde çalışacak ve bu nedenle style.xml dosyasına küçük bir kod ekleyeceğiz ve ondan önce AndroidManifest.xml'de değiştireceğiz

android: tema = "@ stil / AppTheme"

android: tema = "@ stil / AppTheme.NoActionBar"

bunu söyleyen yeni stil ActionBar olmadan. Ayrıca, MainActivity onCreate'de, Araç Çubuğu türüyle araç çubuğu değişkenini ekleyin. Araç çubuğu = (Araç çubuğu) findViewById (R.id.toolbar) üzerinden tanımlayalım ve setSupportActionBar (araç çubuğu) desteğini etkinleştirelim.

TextView'in önündeki aktivite_main.xml düzenine aşağıdaki kodu ekleyin:

Bu widget'ları uygulamamızın içe aktarımına bağlayalım.

android.support.v7.widget.Toolbar'ı içe aktarın;

Alt + Enter tuşlarına basın, ekleyeceğiz, uygulamamızın içe aktarımını güncelleyeceğiz. Widget'ı bağlamak için birkaç kez yapmanız gerekebilir. Kaydet'i tıklayın.

Artık uygulamamızı emülatörde çalıştırabiliriz. Her şey birebir aynı görünüyor ancak bu kod olmadan uygulamamız gerçek bir cihaza yüklenemez. İmzalı bir başvuru yapalım.

Bir varmış bir yokmuş, bundan yaklaşık 5 yıl önce Android işletim sistemine sahip cihazlar hızla popülerlik kazanıyordu. Güzel bir zamandı, dünya krizden çıkıyordu, ileride birçok ilginç şey vardı ve her cihazda bir Menü düğmesi vardı.
İki yıl sonra, Android'den adamlar, telefonun kasasındaki "menü" düğmesinin artık moda olmadığını ve onsuz yapılabileceğini bildirdi. O zamandan beri, her birimiz (Geliştiriciler Birliği) android cihazların büyük çoğunluğunda menüyü nasıl açacağımızı biliyoruz.
Bazıları için bu korkunç bir düğme akordeon gibi görünebilir, ancak geçen hafta hayatımızın 2 saatini bunu kullanıcıya açıklamaya çalışarak geçirdik. Buna katlanmak imkansızdı, bu yüzden aşağıda android cihazlarda menü işlevinin nasıl çağrılacağına dair bir açıklama vereceğim.
En yaygın cihazlarda mekanik menü düğmeleri şöyle görünür:

Ayrıca, çoğu durumda, menü işlevini çağırmak için kısa bir dokunuş yeterlidir. Ancak, genellikle seçim düğmesine bir menü çağrısı eklenebilir. çalışan uygulamalar... Şuna benziyor:


Bu durumda menü açılacaktır. sadece uzun bir basışla(sözde uzun tıklama)! Yani sadece parmakla dürtülmedi, dürtüldü ve tutuldu... Birçok kişi bundan sonra diyor Vay!

Tablet sahiplerine dikkat etmelerini tavsiye ederim. çalışma alanı ekran, bu, Menü de dahil olmak üzere düğmelerin en sık bulunduğu yerdir.


Üstelik her zaman sağdaki maksimum değil, ancak bu düğme tam olarak böyle görünüyor.
Açık taze versiyonlar Android işletim sistemi menü düğmesi şöyle görünür.

Çok var gizli işlevler ki bu oldukça yardımcı olabilir. System UI Tuner bunlardan biridir. Bu menüyü etkinleştirdikten sonra, kullanıcı kişiselleştirme açısından daha fazla seçeneğe sahip olur. Android arayüzü... Treshbox hakkındaki makalelerden birinde zaten varız.

Bazı geliştiriciler, System UI Tuner'ı ihtiyaçlara uyacak şekilde zaten uyarladılar. sıradan kullanıcılar... Örneğin, üzerinde de mevcut olan önceki sürümler Android, bildirim perdesiyle birlikte yukarıdan kayan hızlı işlem menüsüne özel düğmeler eklemek için UI Ayarlayıcıyı kullanır. İşin güzel yanı, Android 6.0 Marshmallow'da Özel Hızlı Ayarları kullanmak kök erişimi gerektirmez.

Nasıl çalışır

Her şeyden önce, yalnızca kararlı bir bilgisayarda çalışan aynı System UI Tuner menüsünü etkinleştirmeniz gerekir. Android sürümü 6.0 Hatmi. Android M'nin bazı önizlemeleri bu özelliği alamadı. UI Tuner'ın aktivasyonu hakkında ilgili makalemizde okuyabilirsiniz, ancak bu materyalden bir yere atlamak istemiyorsanız, o zaman: hızlı eylemler ve bildirimlerle üst "perdeyi" tamamen açın, vites düğmesini basılı tutun ayarlar menüsünde açar - her şey, Sistem Kullanıcı Arayüzü Ayarlayıcısı etkinleştirildi. Şimdi genel menüde Android ayarları ilgili öğe göründü, ancak pratikte buna ihtiyacınız olmayacak. Özel Hızlı Ayarlar uygulaması her şeyi sizin için yapar.


Ardından, ücretsiz olarak sunulan ancak reklamlarla birlikte Özel Hızlı Ayarlar uygulamasının kendisini yükleyin. 99 ruble - Dahili satın alımlar yoluyla kaldırılır.


Uygulamayı yükledikten sonra, birkaç işlemle üst menüde bir işlem bulunan özel bir düğme eklenebilir. Özel Hızlı Ayarlar plus'a tıklayarak düğmenin adını seçebilirsiniz, eylemi belirtilen herhangi bir web sayfasını açmak, bir uygulamayı başlatmak, bazı ayarlar alt menüsüne gitmek veya modülü etkinleştirmektir. Bir düğme için bir simge (toplamda 1.200 standart parça mevcuttur; özel olanlar desteklenir) ve ayrıca uzun bir basışta ek bir eylem seçebilirsiniz. Örneğin, Çöp Kutusuna hızlı bir bağlantı oluşturabilirsiniz ve uzun bir basış veya başka bir site açılacaktır - çok uygun bir şey.

Fırsatlar

Ayrıca, cihazı kayıtlı listede bulunan belirli bir Wi-Fi'ye bağlayacak hızlı bir işlem yapabilirsiniz. Başlatma uygulamalarına sahip özel düğmeler çok faydalı olacaktır - açmak için masaüstüne gitmeye gerek yoktur istenilen program.

Hızlı eylemler oluşturma olanakları çok sınırlıdır - yalnızca belirli bir işlemle bağlantı kurabilirsiniz. Wi-Fi ağları veya bir Bluetooth cihazı. Buradaki her şey System UI Tuner'ın işlevselliğine dayanır.


Uygulamanın Pro sürümünde, hızlı eylemlerle işlevsel kısayollar ekleyebilirsiniz. IFTTT desteği var. Özel Hızlı Ayarlar kullanılarak eklenen tüm özel düğmelerin kilit ekranında çalışmadığını belirtmekte fayda var - oldukça beklenen bir şekilde deklanşörde görünmüyorlar.

Tüm bu özelliklerin Android 5.0 / 5.1'de de mevcut olduğunu hatırlayın, ancak bunun için gerekli. Geliştirici, Özel Hızlı Ayarların ek pil gücü kullanmadığını not eder - program sistem önyüklemesinde bir kez başlatılır ve özel düğmeler yalnızca kullanıcı bunu yaptıktan sonra güncellenir.

Ameliyathanenin nasıl olduğunu görmek güzel Android sistemi her biriyle Yeni sürüm daha önce yalnızca kök haklarıyla kullanılabilen işlevleri devralır. Umarım Google gelecekte System UI Tuner özelliğini kaldırmaz. Android güncellemesi 6.0.1 veya 6.1. Bu arada, zaten Marshmallow'a yükselttiniz mi?

Android, çeşitli menü türlerini destekler. Birincisi, telefonda ayrı bir düğme var. Menü(eski telefonlarda), bir menüyü getiren basmak. Yeni cihazlarda, dikey yönde üç nokta şeklinde bir menü simgesiyle değiştirilen ayrı bir düğme kaldırıldı. İkinci tür, parmağınızı ekranda istediğiniz yerde basılı tuttuğunuzda görünen bir bağlam menüsüdür (ayrıca basılı tutabilirsiniz). orta düğme telefonda). bağlam menüsü sırayla bir alt menüye sahip olabilir. Bugün ilk menü tipine bir göz atacağız. Bu makale, aşağıdaki yeni cihazlarda menüyle çalışmayı ele alacaktır: Android 4.0 ve üstü.

şablonda Boş Etkinlik menü yok, bu yüzden kendimiz oluşturacağız. Bu, nasıl çalıştığını anlamanıza ve projeye genel bir bakış elde etmenize yardımcı olacaktır. Menü seçimini yapmak için sınıfların, yöntemlerin ve kodların adlarını hatırlamak gerekli değildir. Diğer şablonlarda menü yerleşik olacaktır ve hemen kullanabilirsiniz.

dayalı yeni bir proje oluşturun Boş Etkinlik ve çalıştırın. Henüz bir menü yok.

Bir dosyada bazı dize kaynakları oluşturalım res / değerler / strings.xml menü öğelerinden sorumlu olacak:

Ayarlar kedi Kedi Yavru kedi

Şimdi oluştur yeni dosya Menü klasörde res res, | Yeni | dizin). Ardından, oluşturulan klasörde bir dosya oluşturun menu_main.xml- isim, menünün ana faaliyetle ilgili olduğunu gösterir Ana aktivite(klasöre sağ tıklayın Menü | Yeni | Menü Kaynak Dosyası). Birkaç ekranlı bir uygulama oluşturacaksanız, her aktivitenin kendi ayarları ile ayrı bir menüsü olacaktır. Şimdilik dosyayı açalım menu_main.xml ve kodumuzu ortaya çıkan şablona ekleyin:

dosyayı açalım Ana aktivite... Artık içinde tek bir yöntem var. onCreate ()... Yeni bir yöntem ekleyelim onCreateOptionsMenu ()... Aynen öyle Bu method aktivite menüsünün görünümünden sorumludur. Stüdyoda bir menü seçin kod| ve bir sonraki pencerede yöntemin adını ilk harflerle girmeye başlayın. İlk büyük harfleri kullanarak girebilirsiniz, yani. ocom ( Ö n C yeniden Ö seçenekler m tr) istediğiniz satırı hızlı bir şekilde bulmak için. Butona bas tamam ve iş parçasını alıyoruz.

@Override public boolean onCreateOptionsMenu (Menü menüsü) (super.onCreateOptionsMenu (menü);)

Menü kaynaklarından veri alan ve bunları ekrandaki menü öğelerine dönüştüren şablona bir yöntem ekleyin.

@Override public boolean onCreateOptionsMenu (Menü menüsü) (getMenuInflater (). Şişirme (R.menu.menu_main, menu); true döndür;)

yöntemde şişirmek () bir menü kaynağına işaret ediyorsunuz ( R.menu.menu_ana) ve sınıf nesnesi Menü.

İngilizce'de "inflate", şişirmek olarak çevrilir, yani. Android geliştiricileri tarafından tasarlandığı gibi, örneğin bir menü gibi bir nesneyi verilerle şişiriyoruz. Ama aslında "şişirmek" kelimesi şu ifadeden gelmektedir. Apartman dairesinde- daireye. Kedinin önce daireye girmesine izin vermek için eski bir gelenek var, bu da evin tüm köşelerini ve çatlaklarını araştırıyor ve onun içinde yaşamaya rıza gösterdiğini ilan ediyor. XML dosyasındaki verileri MenuInflater nesnesine bu şekilde çalıştırıyoruz.

Projeyi çalıştırın. Şimdi, başlığın sağ tarafında, dikey bir çizgide düzenlenmiş üç noktadan oluşan bir simge göreceksiniz. Menü öğesini görmek için simgeye tıklayın Ayarlar.

Tahmin edebileceğiniz gibi, element kalem ayrı bir menü öğesinden sorumludur. Aynı şekilde, sadece menünün tanımlayıcısını ve metnini değiştirerek üç öğe daha ekleyelim:

Projeyi çalıştırın ve menüyü tekrar açmayı deneyin. Üç yeni öğe göreceksiniz.

parametreler İD ve Başlık açıklamaya gerek yok. Parametre siparişInCategory menü öğelerini görüntülemek için kendi sıranızı belirlemenizi sağlar. Diyelim ki beş menü öğesi oluşturdunuz, ancak bunların ekranda hangi sırayla görüntüleneceğine henüz karar vermediniz. Menü öğeleri için tüm kod bloklarını istediğiniz sırayla sürekli hareket ettirmemek için bu parametreyi kullanabilirsiniz.

Ve son olarak, önemli bir özellik uygulama: showAsAction menünün davranışını tanımlar. Eylem Çubuğu... Anlam asla menü öğesinin başlıkta değil, yalnızca açılır menüde görünmesi gerektiği anlamına gelir, yani. üç puan gerisinde olmak değeri ayarlarsanız her zaman sonra öğe Ayarlar hemen uygulamanızın başlığında görünecektir. Ayrıca mevcut değerler ifOdalar, metin ile ve daraltAksiyonGörünüm... Kendin dene. Örneğin, ifOda alan izin veriyorsa bir menü öğesi görüntüler. Çok fazla puan varsa, sadece yoluna girecekler. Kural olarak, bu seçenek, üç noktaya gereksiz yere tıklamayı önlemek için sık yapılan işlemler için çok kısa bir kelime veya simge görüntüler.

Özelliğe dikkat edin uygulama: showAsAction ad alanına ait olan xmlns: app = "http://schemas.android.com/apk/res-auto"... Böyle bir ad alanının olmadığı ve projelerin özniteliği kullandığı bir zaman vardı. android: showAsAction standart ad alanından. Stüdyo bir hatadan şikayet ederse, kodu düzenleyin.

Menü öğeleri yararlı işler yapana kadar. Öğeye herhangi bir tıklama, görünür bir sonuç olmadan menüyü kapatır. Henüz tıklamaları işlemek için herhangi bir kod yazmadık.

Menü öğelerini seçme

Menü oluşturmayı öğrendik. Ancak, menü öğeleri tıklamalarımıza hiçbir şekilde tepki vermediğinden, şimdiye kadar işe yaramaz. Menü öğesi tıklamalarını işlemek için farklı bir yöntem kullanılır. onOptionsItemSelected ()... Bir önceki örnekteki gibi bir method ekleyelim. Bir boşluk alalım.

@Override public boolean onOptionsItemSelected (MenuItem öğesi) (return super.onOptionsItemSelected (item);)

Parametre kalem menü öğesinden sorumludur. Menünün kimliğini yöntem aracılığıyla almalısınız. getItemId () ve bunun için bir kod sağlayın. Menü genellikle birkaç öğeden oluştuğu için yapıları kullanmak uygundur. eğer / başka veya değiştirmek... Bilgileri görüntülemek için bir metin etiketi kullanacağız. Etkinlik ekranına bir bileşen ekleyin Metin görünümü... mevcut olanı kullanabilirsin Metin görünümü"Merhaba Dünya!" etiketli, sadece bir kimlik verin.

android: id = "@ + id / textView" android: layout_width = "wrap_content" Android: layout_height = "wrap_content" Android: text = "Merhaba Dünya!" />

Seçili menü öğesinin kodunu şablona ekleyelim:

@Override public boolean onOptionsItemSelected (MenuItem öğesi) (// seçilen menü öğesinin tanımlayıcısını al int id = item.getItemId (); TextView infoTextView = (TextView) findViewById (R.id.textView); // Seçilenler için işlemler menü öğesi anahtarı ( id) (durum R.id.action_cat1: infoTextView.setText ("Bir kedi seçtiniz!"); dönüş true; case R.id.action_cat2: infoTextView.setText ("Bir kedi seçtiniz!" ); dönüş true; case R. id.action_cat3: infoTextView.setText ("Bir yavru kedi seçtiniz!"); true döndür; varsayılan: return super.onOptionsItemSelected (öğe);))

Uygulamayı çalıştırın, menüyü açın ve herhangi bir menü öğesini seçin. Metin kutusunda bir mesaj görünmelidir.

var alternatif yol XML aracılığıyla, düğme tıklamalarını işlemeye benzer (Android 3.0'dan beri). özelliği ekleyebilirsiniz android: onClick menü kaynaklarında ve bir yöntem çağrısı kullanmanıza gerek yok onOptionsItemSelected ()... yardım ile android: onClick bir menü öğesi seçerken istediğiniz yöntemi belirleyebilirsiniz. Eklemek verilen niteliköğeye Ayarlar

Şimdi aktivite koduna aşağıdakileri yazalım:

// Ayarlar menüsü öğesi özniteliği Android olarak ayarlanır: onClick = "onSettingsMenuClick" public void onSettingsMenuClick (MenuItem öğesi) (TextView infoTextView = (TextView) findViewById (R.id.textView); infoTextView.setText ("Ayarlar öğesini seçtiniz , bir kedi seçsen iyi olur ");)

Anahtarlar

Menü öğelerinin görünümünü bir radyo düğmesi görünümüyle değiştirebilirsiniz. Bunu yapmak için öğeyi eklemeniz gerekir. grup nitelik ile android: checkableBehavior = "tek":

Bu modda pek bir anlam görmüyorum. Ve bunu dikkate almayacağız.

Tasarım Modu

Android Studio 2.2, ekrana yeni bileşenler eklemek için bir araç çubuğuna benzeyen bir grafik menü oluşturma modu ekledi. Menü çubuğu dört öğeden oluşur: Menü seçeneği, Öğe Ara , Menü, Grup.

Prensip aynı, sen seç gerekli eleman ve ekranda menü alanına sürükleyin. Menüleri manuel olarak oluşturmaya baktıysanız, Bu taraftan size zorluk çıkarmaz. Bir menü yapısını hızlı bir şekilde çizmenize ve ardından manuel olarak değiştirmenize olanak tanır.