JavaveAndroidHakkında

Android Yazılım geliştirme konusunda sürekli bilgi akışı sağlayan, soru-cevaplar ile öğrenme gerçekleştirmeyi amaçlayan bir eğitim süreci planlıyoruz.

Android'de Pop-Up Menü oluşturmak etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Android'de Pop-Up Menü oluşturmak etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

13 Şubat 2015 Cuma

Android - Menu Kavramı Pop-Up Menü Oluşturmak - 7

18:17

Pop-Up Menü Oluşturmak

     Pop-Up menüler, View'ler ile ilişkilendirilmiş tipik menülerdir. Anchor View'ın altında yer olduğunda veya diğer View'lerin üzerinde görünür. Aşağıdaki durumlarda kullanışlı bir seçenektir. Bunlar; 


  • İşlemler için, belirli içerik ile alakalı overflow-stil menü tanımlarken ( Gmail'de email başlığı gibi şekil 1) 

Şekil 1 Gmail app'den Pop-Up Menü Örneği

NOT: Bu yapı, genellikle seçili itemlerin etkilendiği Context Menü ile aynı değildir. Seçili itemleri etkileyen işlemler tayin etmek için, contextual action mode veya floating context menü kullanınız.

  • İkinci kısım komut cümleleri tanımladığınızda( "Add" şeklinde etiketlenmiş ve farklı bir "Add" işlemi için tanımlanmış Pop-Up Menü türetmek gibi )
  • Spinner' e benzer, seçimleri kalıcı olarak tutmayan drop-down(aşağı açılır menü) tanımlarken,

NOT: Pop-Up Menü, diğer bir çok özellik gibi Android 3.0 (API Level 11) ile birlikte geliştirilmiştir. 



    Eğer Pop-Up menünüzü XML içinde tanımlıyorsanız, yapmanız gerekenler aşağıdaki gibidir.

  1. PopupMenu yü, mevcut uygulamanın Pop-Up menüyle ilişkilendirilecek Context ve View'lerini parametre alacak şekilde  kendi yapıcı metodu yardımıyla hazırlayın,
  2. MenuInflater kullanarak, PopupMenu.getMenu() ile döndürülecek olan Menü nesnesindeki menü kaynağınızı inflate edin. API Level 14'ten itibaren, PopupMenu.inflate() kullanılabilir.
  3. PopupMenu.show() metodunu çağırın.

Örneğin; android:onClick niteliğiyle oluşturulmuş Pop-Up Menü gösterimi


XML kodu,

  • layout/activity_menu.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"  tools:context=".MainActivity">

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_overflow_holo_dark"
        android:contentDescription="@string/descr_overflow_button"
        android:onClick="showPopup" />

</RelativeLayout>


  • menu/actions.xml
<?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/new_game"

        android:title="new_game"
        app:showAsAction="ifRoom"/>
    <item android:id="@+id/help"

        android:title="help" />
</menu>

  • Java kodu

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    public void showPopup(View v) {
        PopupMenu popup = new PopupMenu(this, v);
        MenuInflater inflater = popup.getMenuInflater();
        inflater.inflate(R.menu.actions, popup.getMenu());
        popup.show();
    }
...



    API Level 14 ve daha yeni sürümlerde, PopupMenu.inflate() metodu yardımıyla, 2 satırı kombine edebilirsiniz.

    Menü, kullanıcını menü alanı dışına tıklamasıyla veya bir item seçmesi ile görevini tamamlar. Bu görevi bitirme (dismissed) olayını, PopupMenu.onDismissListener() metodu ile takip edebilirsiniz.

Pop-Up Menü'de Tıklama Olaylarını Ele Almak


    Kullanıcı Menü itemlerinden birini seçtiğinde işlem gerçekleştirmek için, PopupMenu.onMenuItemListener arayüzünü uygulamalı ve bunu PopupMenu'ye setOnMenuItemclickListener() metodunu çağırarak register etmelisiniz. Kullanıcı herhangi bir item seçtiğinde, uygulamanızın arayüzünden sistem onMenuItemClick() geri dönüş metodunu çağırır. 

Örnek:

---Yukarıda bahsettiğimiz dizinlerde tanımlanan kaynak dosyalarından sadece java dosyasına eklediğimiz . Pop-Up Menü oluşturduğumuz kodun yerine bu kodu ekliyoruz.


 public void showPopup(View v) {
        PopupMenu popup = new PopupMenu(this, v);

        // This activity implements OnMenuItemClickListener
//        popup.setOnMenuItemClickListener();

        popup.inflate(R.menu.actions);
        popup.show();

        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                TextView view1 = (TextView) findViewById(R.id.hello);
                view1.setText("changed by Pop_Up menu");
                return true;
            }

    });
    }


Örnek Kod'un projesi için Buradan..
Soru ve Görüşleriniz için ise AndroidVeJava




Android'de Pop-Up Menü oluşturmak etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Android'de Pop-Up Menü oluşturmak etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

13 Şubat 2015 Cuma

Android - Menu Kavramı Pop-Up Menü Oluşturmak - 7

Pop-Up Menü Oluşturmak

     Pop-Up menüler, View'ler ile ilişkilendirilmiş tipik menülerdir. Anchor View'ın altında yer olduğunda veya diğer View'lerin üzerinde görünür. Aşağıdaki durumlarda kullanışlı bir seçenektir. Bunlar; 


  • İşlemler için, belirli içerik ile alakalı overflow-stil menü tanımlarken ( Gmail'de email başlığı gibi şekil 1) 

Şekil 1 Gmail app'den Pop-Up Menü Örneği

NOT: Bu yapı, genellikle seçili itemlerin etkilendiği Context Menü ile aynı değildir. Seçili itemleri etkileyen işlemler tayin etmek için, contextual action mode veya floating context menü kullanınız.

  • İkinci kısım komut cümleleri tanımladığınızda( "Add" şeklinde etiketlenmiş ve farklı bir "Add" işlemi için tanımlanmış Pop-Up Menü türetmek gibi )
  • Spinner' e benzer, seçimleri kalıcı olarak tutmayan drop-down(aşağı açılır menü) tanımlarken,

NOT: Pop-Up Menü, diğer bir çok özellik gibi Android 3.0 (API Level 11) ile birlikte geliştirilmiştir. 



    Eğer Pop-Up menünüzü XML içinde tanımlıyorsanız, yapmanız gerekenler aşağıdaki gibidir.

  1. PopupMenu yü, mevcut uygulamanın Pop-Up menüyle ilişkilendirilecek Context ve View'lerini parametre alacak şekilde  kendi yapıcı metodu yardımıyla hazırlayın,
  2. MenuInflater kullanarak, PopupMenu.getMenu() ile döndürülecek olan Menü nesnesindeki menü kaynağınızı inflate edin. API Level 14'ten itibaren, PopupMenu.inflate() kullanılabilir.
  3. PopupMenu.show() metodunu çağırın.

Örneğin; android:onClick niteliğiyle oluşturulmuş Pop-Up Menü gösterimi


XML kodu,

  • layout/activity_menu.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"  tools:context=".MainActivity">

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_overflow_holo_dark"
        android:contentDescription="@string/descr_overflow_button"
        android:onClick="showPopup" />

</RelativeLayout>


  • menu/actions.xml
<?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/new_game"

        android:title="new_game"
        app:showAsAction="ifRoom"/>
    <item android:id="@+id/help"

        android:title="help" />
</menu>

  • Java kodu

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    public void showPopup(View v) {
        PopupMenu popup = new PopupMenu(this, v);
        MenuInflater inflater = popup.getMenuInflater();
        inflater.inflate(R.menu.actions, popup.getMenu());
        popup.show();
    }
...



    API Level 14 ve daha yeni sürümlerde, PopupMenu.inflate() metodu yardımıyla, 2 satırı kombine edebilirsiniz.

    Menü, kullanıcını menü alanı dışına tıklamasıyla veya bir item seçmesi ile görevini tamamlar. Bu görevi bitirme (dismissed) olayını, PopupMenu.onDismissListener() metodu ile takip edebilirsiniz.

Pop-Up Menü'de Tıklama Olaylarını Ele Almak


    Kullanıcı Menü itemlerinden birini seçtiğinde işlem gerçekleştirmek için, PopupMenu.onMenuItemListener arayüzünü uygulamalı ve bunu PopupMenu'ye setOnMenuItemclickListener() metodunu çağırarak register etmelisiniz. Kullanıcı herhangi bir item seçtiğinde, uygulamanızın arayüzünden sistem onMenuItemClick() geri dönüş metodunu çağırır. 

Örnek:

---Yukarıda bahsettiğimiz dizinlerde tanımlanan kaynak dosyalarından sadece java dosyasına eklediğimiz . Pop-Up Menü oluşturduğumuz kodun yerine bu kodu ekliyoruz.


 public void showPopup(View v) {
        PopupMenu popup = new PopupMenu(this, v);

        // This activity implements OnMenuItemClickListener
//        popup.setOnMenuItemClickListener();

        popup.inflate(R.menu.actions);
        popup.show();

        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                TextView view1 = (TextView) findViewById(R.id.hello);
                view1.setText("changed by Pop_Up menu");
                return true;
            }

    });
    }


Örnek Kod'un projesi için Buradan..
Soru ve Görüşleriniz için ise AndroidVeJava




Android'de Pop-Up Menü oluşturmak etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Android'de Pop-Up Menü oluşturmak etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

13 Şubat 2015 Cuma

Android - Menu Kavramı Pop-Up Menü Oluşturmak - 7

Pop-Up Menü Oluşturmak

     Pop-Up menüler, View'ler ile ilişkilendirilmiş tipik menülerdir. Anchor View'ın altında yer olduğunda veya diğer View'lerin üzerinde görünür. Aşağıdaki durumlarda kullanışlı bir seçenektir. Bunlar; 


  • İşlemler için, belirli içerik ile alakalı overflow-stil menü tanımlarken ( Gmail'de email başlığı gibi şekil 1) 

Şekil 1 Gmail app'den Pop-Up Menü Örneği

NOT: Bu yapı, genellikle seçili itemlerin etkilendiği Context Menü ile aynı değildir. Seçili itemleri etkileyen işlemler tayin etmek için, contextual action mode veya floating context menü kullanınız.

  • İkinci kısım komut cümleleri tanımladığınızda( "Add" şeklinde etiketlenmiş ve farklı bir "Add" işlemi için tanımlanmış Pop-Up Menü türetmek gibi )
  • Spinner' e benzer, seçimleri kalıcı olarak tutmayan drop-down(aşağı açılır menü) tanımlarken,

NOT: Pop-Up Menü, diğer bir çok özellik gibi Android 3.0 (API Level 11) ile birlikte geliştirilmiştir. 



    Eğer Pop-Up menünüzü XML içinde tanımlıyorsanız, yapmanız gerekenler aşağıdaki gibidir.

  1. PopupMenu yü, mevcut uygulamanın Pop-Up menüyle ilişkilendirilecek Context ve View'lerini parametre alacak şekilde  kendi yapıcı metodu yardımıyla hazırlayın,
  2. MenuInflater kullanarak, PopupMenu.getMenu() ile döndürülecek olan Menü nesnesindeki menü kaynağınızı inflate edin. API Level 14'ten itibaren, PopupMenu.inflate() kullanılabilir.
  3. PopupMenu.show() metodunu çağırın.

Örneğin; android:onClick niteliğiyle oluşturulmuş Pop-Up Menü gösterimi


XML kodu,

  • layout/activity_menu.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"  tools:context=".MainActivity">

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_overflow_holo_dark"
        android:contentDescription="@string/descr_overflow_button"
        android:onClick="showPopup" />

</RelativeLayout>


  • menu/actions.xml
<?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/new_game"

        android:title="new_game"
        app:showAsAction="ifRoom"/>
    <item android:id="@+id/help"

        android:title="help" />
</menu>

  • Java kodu

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    public void showPopup(View v) {
        PopupMenu popup = new PopupMenu(this, v);
        MenuInflater inflater = popup.getMenuInflater();
        inflater.inflate(R.menu.actions, popup.getMenu());
        popup.show();
    }
...



    API Level 14 ve daha yeni sürümlerde, PopupMenu.inflate() metodu yardımıyla, 2 satırı kombine edebilirsiniz.

    Menü, kullanıcını menü alanı dışına tıklamasıyla veya bir item seçmesi ile görevini tamamlar. Bu görevi bitirme (dismissed) olayını, PopupMenu.onDismissListener() metodu ile takip edebilirsiniz.

Pop-Up Menü'de Tıklama Olaylarını Ele Almak


    Kullanıcı Menü itemlerinden birini seçtiğinde işlem gerçekleştirmek için, PopupMenu.onMenuItemListener arayüzünü uygulamalı ve bunu PopupMenu'ye setOnMenuItemclickListener() metodunu çağırarak register etmelisiniz. Kullanıcı herhangi bir item seçtiğinde, uygulamanızın arayüzünden sistem onMenuItemClick() geri dönüş metodunu çağırır. 

Örnek:

---Yukarıda bahsettiğimiz dizinlerde tanımlanan kaynak dosyalarından sadece java dosyasına eklediğimiz . Pop-Up Menü oluşturduğumuz kodun yerine bu kodu ekliyoruz.


 public void showPopup(View v) {
        PopupMenu popup = new PopupMenu(this, v);

        // This activity implements OnMenuItemClickListener
//        popup.setOnMenuItemClickListener();

        popup.inflate(R.menu.actions);
        popup.show();

        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                TextView view1 = (TextView) findViewById(R.id.hello);
                view1.setText("changed by Pop_Up menu");
                return true;
            }

    });
    }


Örnek Kod'un projesi için Buradan..
Soru ve Görüşleriniz için ise AndroidVeJava