Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Mobil - Android Programlama Ders 13: İçerik Menüsü

Android Programlama Ders 13: İçerik Menüsü

9 Temmuz 2013 - 18:31
- Mobil, Teknoloji

Android Programlama derslerimizin 13. bölümünde sizlerle birlikte basit bir içerik menüsü oluşturmayı öğreneceğiz.

Android uygulamasında ekrandaki bir nesneye uzun basılmasında içerik menüsü karşımıza gelebilir. Menüde genelde listeler de kullanılıyor.  Aynı türden nesneler topluluğu olduğu zaman (mesela mektuplar)  bir nesneyle bir şey yapmak istiyorsanız, bu nesne için içerik menüsü çağırabilirsiniz.  İçerik menüyü  daha iyi anlamak için bir örnek oluşturalım. Örnekte TextView için içerik menüsü oluşturalım.

Proje Örneği: Yeni  bir proje oluşturalım:

  • Project name: P0013_ContextMenu
  • Build Target: Android 4.2
  • Application name: ContextMenu
  • Package name: tr.androidApp.contextmenu
  • Create Activity: MainActivity

Main.xml dosyasını açalım ve iki tane TextView oluşturalım.

<?xml version=”1.0″ encoding=”utf-8″?> <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:orientation=”vertical” android:layout_width=”fill_parent” android:layout_height=”fill_parent”> <TextView android:layout_height=”wrap_content” android:textSize=”26sp” android:layout_width=”wrap_content” android:id=”@+id/tvColor” android:layout_marginBottom=”50dp” android:layout_marginTop=”50dp” android:text=”Text color”> </TextView> <TextView android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:textSize=”22sp” android:id=”@+id/tvSize” android:text=”Text size”> </TextView> </LinearLayout>

Birinci TextView için içerik menüsü metninin rengi değişecek. İkinci TextView için metnin boyutu değişecek. İçerik menüsü, bir basit menü oluşturmaya benziyor ama küçük farklılıklarla. İçerik menüsü açıldığında onCreateContextMenu metodu çağırılır. Giriş değişkenler: – ContextMenu buraya  menü seçenekleri ekleneceğiz – View– içerik menü çağırdığı nesneyi temsil ediyor – ContextMenu.ContextMenuInfo – ek bilgi içeriyor. Bu aşamada bu özelliği kullanmayacağız. onContextItemSelected metodu onOptionsItemSelected metoduna benziyor. Giriş değişkeni MenuItem – seçtiğiniz menü seçeneği içeriyor. Üçüncü metod registerForContextMenu. Bu metod giriş değişkeni olarak View nesneyi kullanıyor. Bu metod View nesne için içerik menüyü yaratacak. Şimdi kodu yazmak için MainActivity.java’yı açalım. TextView’ü oluşturalım ve bu nesne için içerik menü oluşturmayı belirleyelim.

TextView tvColor, tvSize; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tvColor = (TextView) findViewById(R.id.tvColor); tvSize = (TextView) findViewById(R.id.tvSize); // tvColor ve tvSize icerik menu ulusturuyoruz registerForContextMenu(tvColor); registerForContextMenu(tvSize); }

Şimdi içerik menüsünü nasıl oluşturacağını belirleyeceğiz. Menü seçenekleri oluşturmak için ID’leri kullanacağız.

  final int MENU_COLOR_RED = 1;
  final int MENU_COLOR_GREEN = 2;
  final int MENU_COLOR_BLUE = 3;

  final int MENU_SIZE_22 = 4;
  final int MENU_SIZE_26 = 5;
  final int MENU_SIZE_30 = 6;

İçerik menüsü seçenekleri oluşturuyoruz.

@Override
    public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
      // TODO Auto-generated method stub
      switch (v.getId()) {
    case R.id.tvColor:
      menu.add(0, MENU_COLOR_RED, 0, "Red");
      menu.add(0, MENU_COLOR_GREEN, 0, "Green");
      menu.add(0, MENU_COLOR_BLUE, 0, "Blue");
      break;
    case R.id.tvSize:
      menu.add(0, MENU_SIZE_22, 0, "22");
      menu.add(0, MENU_SIZE_26, 0, "26");
      menu.add(0, MENU_SIZE_30, 0, "30");
      break;
    }
    }

ID’yi kullanarak hangi View nesne için içerik menü oluşturacağını belirleyeceğiz. Ve ona göre içerik menüyü oluşturacağız. Eğer içerik menü tvColor nesne için çağrılıyorsa o zaman içerik menü seçenekleri renklerin seçeneği içerecek. tvSize nesne için içerik menü seçenekleri metnin boyutları seçeneğini  içerecek. Örneklerimizde ID’ler sabittir ( MENU_COLOR_, MENU_SIZE_). Gruplanması ve sıralanmasını kullanmıyoruz o yüzden parametreler sıfıra eşittir. Projeyi kaydettikten sonra çalıştıralım. TextView’ye uzun basıldığında karşımıza içerik menü çıkmalı.

 

içerik_menü

 

İçerik menü seçeneklerine basıldığında bir şey olmuyor. Çünkü onContextItemSelected metodunda işleticiyi belirtmedik. İşleticiyi ekleyelim:

  @Override
    public boolean onContextItemSelected(MenuItem item) {
      // TODO Auto-generated method stub
      switch (item.getItemId()) {
      // tvColor icin secenekler
    case MENU_COLOR_RED:
      tvColor.setTextColor(Color.RED);
      tvColor.setText("Text color = red");
      break;
    case MENU_COLOR_GREEN:
      tvColor.setTextColor(Color.GREEN);
      tvColor.setText("Text color = green");
      break;
    case MENU_COLOR_BLUE:
      tvColor.setTextColor(Color.BLUE);
      tvColor.setText("Text color = blue");
      break;
    // tvSize icin secenekler
    case MENU_SIZE_22:
      tvSize.setTextSize(22);
      tvSize.setText("Text size = 22");
      break;
    case MENU_SIZE_26:
      tvSize.setTextSize(26);
      tvSize.setText("Text size = 26");
      break;
    case MENU_SIZE_30:
      tvSize.setTextSize(30);
      tvSize.setText("Text size = 30");
      break;
      }
      return super.onContextItemSelected(item);
    }

ID yardımıyla hangi seçeneğe basıldığını öğreniyoruz. Sonra tvColor için rengini ve tvSize boyutunu değiştiriyoruz. Kaydettikten sonra uygulamayı kontrol edelim. Seçeneklere basıldığı zaman rengi ve boyutu değişmeli.

context_menu

Tam kodu:

public class MainActivity extends Activity {

  final int MENU_COLOR_RED = 1;
  final int MENU_COLOR_GREEN = 2;
  final int MENU_COLOR_BLUE = 3;

  final int MENU_SIZE_22 = 4;
  final int MENU_SIZE_26 = 5;
  final int MENU_SIZE_30 = 6;

  TextView tvColor, tvSize;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    tvColor = (TextView) findViewById(R.id.tvColor);
    tvSize = (TextView) findViewById(R.id.tvSize);

    // tvColor ve tvSize icin icerik menu olusuyoruz
    registerForContextMenu(tvColor);
    registerForContextMenu(tvSize);
  }

  @Override
  public void onCreateContextMenu(ContextMenu menu, View v,
      ContextMenuInfo menuInfo) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.tvColor:
      menu.add(0, MENU_COLOR_RED, 0, "Red");
      menu.add(0, MENU_COLOR_GREEN, 0, "Green");
      menu.add(0, MENU_COLOR_BLUE, 0, "Blue");
      break;
    case R.id.tvSize:
      menu.add(0, MENU_SIZE_22, 0, "22");
      menu.add(0, MENU_SIZE_26, 0, "26");
      menu.add(0, MENU_SIZE_30, 0, "30");
      break;
    }
  }

  @Override
  public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId()) {
    // tvColor icin secenekler
    case MENU_COLOR_RED:
      tvColor.setTextColor(Color.RED);
      tvColor.setText("Text color = red");
      break;
    case MENU_COLOR_GREEN:
      tvColor.setTextColor(Color.GREEN);
      tvColor.setText("Text color = green");
      break;
    case MENU_COLOR_BLUE:
      tvColor.setTextColor(Color.BLUE);
      tvColor.setText("Text color = blue");
      break;
    // tvSize icin secenekler
    case MENU_SIZE_22:
      tvSize.setTextSize(22);
      tvSize.setText("Text size = 22");
      break;
    case MENU_SIZE_26:
      tvSize.setTextSize(26);
      tvSize.setText("Text size = 26");
      break;
    case MENU_SIZE_30:
      tvSize.setTextSize(30);
      tvSize.setText("Text size = 30");
      break;
    }
    return super.onContextItemSelected(item);
  }
}

Bu derste içerik menüsü ve menü seçenekleri oluşturmayı öğrendik. Sonraki derste ekranı, layout’unu kullanarak değil, programlayarak oluşturmayı öğreneceğiz.

Etiketler: AndroidAndroid programlamacontent menucontext menuİçerik menüiçerik menüsüonContextItemSelectedprogramlama dersiregisterForContextMenutvColortvSize
Paylaş2PaylaşTweetYollaPaylaş
Victor Cuiumju

Victor Cuiumju

Yorumlar 2

  1. Hamit says:
    12 yıl önce

    Merhaba hocam,
    Konu ile ilgili bir sorum olacak ;
    Özelliştirmenin uygulamadaki tüm içeriğe etki etmesi için kodun neresini değiştirmemiz gerekir ?
    Mesela yukarıda bir text in rengini değiştirmişsiniz ya ben onun tüm içeriği değiştirmesini istiyorum.Kodlarda nasıl bir değiştirme yapabilirim ? Teşekkürler

    Yanıtla
  2. Vitiok Cuiumjik says:
    12 yıl önce

    Merhaba Hamit ilk başta menüde yeni seçeneği
    oluşturacaksın. Sonra TextView nesnenin içeriği değiştirmek için aşağıdaki kodu
    kullanabilirsin:

    case MENU_CHANGE_TEXT:

    tvText.setText(“Hello
    HAMİT”);

    Yanıtla

Yorum Yap Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

RSS Technopat Sosyal

  • Apple ve Samsung, telefonlarında donanım özelliklerinde neden göz boyamıyor?
  • Debian tabanlı GNOME dağtımı önerisi
  • 45.000 TL'ye bilgisayar önerisi
  • INTEL-i5 3317U ve 8 GB RAM+HDD İçin en iyi İşletim sistemi önerisi
  • Direksiyon seti heves mi?
  • FC 26 Rivals maçının devre arasında FPS 5'e düşüyor
  • Memtest sonuçları nasıl?
  • Windows 11 23H2 veya 24H2'ye nasıl geçilir?
  • Technopat Sosyal Işık Hızında
  • Lenovo LOQ 83GS007WTR vs 83GS00P6TR vs 83LK002PTR

Technopat Video

Şu an oynayan

Bu pil bu kasaya nasıl sığdı? TECNO SPARK Slim 5G inceleme

TECNO SPARK Slim inceleme

Bu pil bu kasaya nasıl sığdı? TECNO SPARK Slim 5G inceleme

Akıllı Telefon
Bu canavarlar her şeyi yapıyor! Çantada süper bilgisayar devri başladı

Bu canavarlar her şeyi yapıyor! Çantada süper bilgisayar devri başladı

Ekran Kartı
Kandırmıyor, şaşırtıyor! Xiaomi 15T incelemesi

Kandırmıyor, şaşırtıyor! Xiaomi 15T incelemesi

Akıllı Telefon

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
{title} {title} {title}
Onayı Yönet
En iyi deneyimleri sunmak için, cihaz bilgilerini saklamak ve/veya bunlara erişmek amacıyla çerezler gibi teknolojiler kullanıyoruz. Bu teknolojilere izin vermek, bu sitedeki tarama davranışı veya benzersiz kimlikler gibi verileri işlememize izin verecektir. Onay vermemek veya onayı geri çekmek, belirli özellikleri ve işlevleri olumsuz etkileyebilir.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, abone veya kullanıcı tarafından açıkça talep edilen belirli bir hizmetin kullanılmasını sağlamak veya bir elektronik iletişim ağı üzerinden bir iletişimin iletimini gerçekleştirmek amacıyla meşru bir amaç için kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından talep edilmeyen tercihlerin saklanmasının meşru amacı için gereklidir.
İstatistik
Sadece istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Sadece anonim istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Mahkeme celbi, İnternet Hizmet Sağlayıcınızın gönüllü uyumu veya üçüncü bir taraftan ek kayıtlar olmadan, yalnızca bu amaçla depolanan veya alınan bilgiler genellikle kimliğinizi belirlemek için kullanılamaz.
Pazarlama
Teknik depolama veya erişim, reklam göndermek için kullanıcı profilleri oluşturmak veya benzer pazarlama amaçları için kullanıcıyı bir web sitesinde veya birkaç web sitesinde izlemek için gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri görüntüle
{title} {title} {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal