Ana içeriğe atla

Android Action Bar Button Eklemek Kullanmak



Android'de Action Bar dediğimiz uygulamamızın hemen üstünde yer alan genellikle uygulama adının ve ekstra bir kaç butonun yer aldığı yerdir. Peki Action Bar'da nasıl çalışabiliriz?



Action Bar'ı doğru metodlar kullanarak bir arama kutusu ListView görüntüleyicisi, NavigationDrawer açıp - kapatma işlemi yapan bir Bar ve daha fazlası olarak set edebiliriz.


Mesela ben yukarıdaki resimde de görüldüğü gibi Action Bar'da bir Search ve Refresh Butonu eklemişim . Peki tüm bu işlemleri basitçe nasıl yapabiliriz? 
Vakit kaybetmeden başlayalım;



Öncelikle uygulamamızın yer aldığı proje hiyerarşisinden res/menu yoluna gelip sağ tıklayıp New> Menu Resource File seçeneğini seçip projemize herhangi bir isim verip ilgili xml dosyasını kaydedelim.

Daha sonra xml dosyasında, bir <item></item> tagı içerisine kendi itemimizi ekliyoruz. Ben bir SearchView aktif eden itemimi şu şekilde ekledim:


<?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/action_search_insides"
        android:enabled="true"
        android:icon="@drawable/ic_search"
        android:orderInCategory="300"
        android:title="@android:string/search_go"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="ifRoom" />

</menu>

Daha sonra uygulamamızın çağrılacağı class'a gelip kendi onCreateOptionsMenu metodunu Override etmemiz gerekiyor.
Buranın içinde bir inflater tanımlayıp yukarıdaki gibi tanımlaığımız menu xml dosyamızı bu inflater'in içinde inflate ediyoruz. Aşağıda detaylı şekilde görebilirsiniz.



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

Ve son olarak eklenilen itemleri kullanmak için onOptionsItemSelected metodu Override edilir. Bu Override'in altına genellikle ya if veya switch kontrol mekanizmaları yazılır ve aksiyonlar girilir. Switch tanımlamak genellikle daha sade, anlaşılır ve kolay oluyor. item.getItemId() metodu bize ilgili itemin id'sini verir. Ben xml dosyası içerisinde item'imin id'sini action_search_insides olarak set etmiştim.  O yüzden çağırırken case içerisinde R.id.action_search_insides ile çağırıyorum ve hemen altına yapmak istediğim şeyleri yazıyorum. Başka itemlerimiz varsa bunları da farklı case'ler içinde id'leri ile çağırabiliriz. en sonunda default: altına da super classından ilgili override metodunun türetilmiş yöntemini çağırıyoruz:



 @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case R.id.action_search_insides:
                setTitle("");
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }

Soru, sorun ve önerileriniz için yorum bırakabilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

Arduino Buzzer için Örnek Müzik Kodları

Bugün ki yazımda programlaması tamamıyla bana ait olan bazı buzzer kodlarını yazımın devamında paylaşıyor olacağım. Öncelikle bağlantı şemasıyla başlayalım; Malzemeler: Arduino (Uno, Nano, Mega) 100 Ohm Direnç Breadboard Bağlama Tarifi: Buzzer'da iki bacak bulunur. Buzzer'ın üstüne baktığınızda bacaklardan birisinin hizasında (+) yazar. Bu bacağı 8 No.lu pine bağlayabilirsiniz. veya istediğiniz herhangi başka bir digital bacak da olabilir. Kodunuzu da ona göre düzenlemeniz gerekir. İkinci bacağı da direnç üzerinden GND (-) Toprak hattına bağlamak gerekir. Bağlantı Şeması: Yukarıdaki şemada siyah (-), kırmızı (+) ucu temsil etmektedir. Ben kodlara ilgili notaların frekanslarını ekledim. Örnek olarak da 2 adet müziği buraya ekleyeceğim. sizler diğer müziklerin notalarını öğrendikten sonra duraksamaları deneme yanılma yoluyla bulabilirsiniz. Takıldığınız yerde aşağıya yorum bırakırsanız seve seve yardımcı da olabilirim. Notalar: 1 2 3 4 5 6 7

16x2 LCD I2C (i2c) Hataları ve Çözümler

Merhaba arkadaşlar arduino I2C modülü kullanımında oluşan bazı hatalardan bahsetmek istiyorum. Öncelikle bu modülle görüntü alamıyorsanız arkasındaki potansiyometreyi sağa ve sola çevirerek uygun konstrata getirin bu sebeple yazılar görünmüyor olabilir. Bağladığınızda arduino kapanıyorsa kısa devre vardır lehim aralıklarını kontrol edin temas olabiliyor. Eğer tek karakter ekranda çıkıyor diğer karakterler çıkmıyorsa aşağıda verdiğim kütüpaneyi yükleyin sorununuz çözülecektir. Eğer buna rağmen görüntü alamıyorsanız LCD panel adresiniz farklı olabilir  LiquidCrystal_I2C lcd(0x27, 16, 2);  kod satırındaki " 27 " yi " 3f " yapın. Yani şöyle olmalı  LiquidCrystal_I2C lcd(0x3f, 16, 2);  Bu şekilde büyük olasılıkla görüntü alamama sorununuz çözülecektir. I2C Port bağlantıları şöyle olmalıdır: gnd-gnd vcc - 5 v sda- A4 scl-A5 pinine bağlanmalıdır. Örnek Kod: #include <Wire.h> #include <LiquidCrystal_I2C.h> // LCD adres 0x3f 16 kara

PID Algoritmalı Çizgi İzleyen Robot (PID Line Follower)

PID var olan bir problemin çözümünde  Oranı, integrali ve Türevi toplayarak bir hata oranı çıkarır ve bunu minimuma indirgemek için bir yol geliştirilir. Daha sonra PID'nin detaylı açıklamasını yaparım. Bu yazıdaki amacım hani hep gördüğünüz virajları çok hızlı dönen çizgi izleyenlerin nasıl yapıldıklarını nacizane göstermek. Malzemeler: Arduino Nano veya UNO Pololu QTR 8RC Kızıl ötesi sensör dizisi Pololu TB6612FNG Motor Sürücü 2 Adet Redüktörlü 6V DC Motor 9V Tercihen Duracell Pil (Arduino beslemesi için)  11.1V bir Li-Po pil (Motor sürücü için) Bağlantı Şeması: Kaynak Kodu: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 #include <QTRSensors.h> #define Kp 0 // Kendi deneyimlerinizle bulmanız gerekli küçük bir değer ile başlayıp, büyütebilirsiniz en kararlı Kp değerini bulana kadar.. #