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.

13 Şubat 2015 Cuma

Android - Menu Kavramı ListView veya GridView'de Yığın Contextual Actions Aktif Etmek - 6

ListView veya GirdView'de Yığın Contextual Actions Aktif Etmek


    Eğer ListView veya GridView içinde item setiniz var ise ve kullanıcının yığın işlemleri (batch actions) gerçekleştirmesini istiyorsanız şunları yapmalısınız;

  • AbsListView.MultiChoiceModeListener() metodunu arayüze uygulamalı ve bunu setMultiChoiceModeListener() metodu ile view gruba ayarlamalısınız. Listener's dönüş metodunda, contextual action bar için, action itemlere yapılan tıklamalara verilecek cevap işlemleri belirleyebilir ve diğer ActionMode.Callback arayüzünden miras alınan(inherited)dönüş metotlarını işleme alabilirsiniz.
  • setChoiceMode() metodunu CHOICE_MODE_MULTIPLE_MODAL parametresi ile çağırın.

Örnek Kod:



ListView listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {

    @Override
    public void onItemCheckedStateChanged(ActionMode mode, int position,
                                          long id, boolean checked) {
        // Here you can do something when items are selected/de-selected,
        // such as update the title in the CAB
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        // Respond to clicks on the actions in the CAB
        switch (item.getItemId()) {
            case R.id.menu_delete:
                deleteSelectedItems();
                mode.finish(); // Action picked, so close the CAB
                return true;
            default:
                return false;
        }
    }

    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // Inflate the menu for the CAB
        MenuInflater inflater = mode.getMenuInflater();
        inflater.inflate(R.menu.context, menu);
        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        // Here you can make any necessary updates to the activity when
        // the CAB is removed. By default, selected items are deselected/unchecked.
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        // Here you can perform updates to the CAB due to
        // an invalidate() request
        return false;
    }
});

    Hepsi bu kadar. Şimdi kullanıcı ne zaman uzun tıklama ile listeden bir item seçer ise, sistem onCreateActionMode() metodun çağıracak ve tanımlanmış olan işlemler ile birlikte contextual aciton bar görüntülenecektir. Contextual action bar görünür durumda iken kullanıcı diğer itemleri de seçebilecektir.

   Contextual işlemler(actions) sık kullanılan action itemlerini sağladığı bazı durumlarda, kullanıcının itemleri seçmesi için checkbox eklemek veya benzer UI elemanları eklemek isteyebilirsiniz. Çünkü, sık kullanılan bu itemler uzun tıklama sonucu çoğu zaman görünmeyebilir. Kullanıcı checkbox'ı seçtiği zaman, setItemChecked() metodu ile işaretlenmiş durumlarını sıralı list itemlere göre ayarlayarak contextual action modu çağırabilirsiniz.

Soru ve Görüşleriniz için: AndroidVeJava
, , , , , , , , , ,

Hiç yorum yok:

Yorum Gönder

13 Şubat 2015 Cuma

Android - Menu Kavramı ListView veya GridView'de Yığın Contextual Actions Aktif Etmek - 6

ListView veya GirdView'de Yığın Contextual Actions Aktif Etmek


    Eğer ListView veya GridView içinde item setiniz var ise ve kullanıcının yığın işlemleri (batch actions) gerçekleştirmesini istiyorsanız şunları yapmalısınız;

  • AbsListView.MultiChoiceModeListener() metodunu arayüze uygulamalı ve bunu setMultiChoiceModeListener() metodu ile view gruba ayarlamalısınız. Listener's dönüş metodunda, contextual action bar için, action itemlere yapılan tıklamalara verilecek cevap işlemleri belirleyebilir ve diğer ActionMode.Callback arayüzünden miras alınan(inherited)dönüş metotlarını işleme alabilirsiniz.
  • setChoiceMode() metodunu CHOICE_MODE_MULTIPLE_MODAL parametresi ile çağırın.

Örnek Kod:



ListView listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {

    @Override
    public void onItemCheckedStateChanged(ActionMode mode, int position,
                                          long id, boolean checked) {
        // Here you can do something when items are selected/de-selected,
        // such as update the title in the CAB
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        // Respond to clicks on the actions in the CAB
        switch (item.getItemId()) {
            case R.id.menu_delete:
                deleteSelectedItems();
                mode.finish(); // Action picked, so close the CAB
                return true;
            default:
                return false;
        }
    }

    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // Inflate the menu for the CAB
        MenuInflater inflater = mode.getMenuInflater();
        inflater.inflate(R.menu.context, menu);
        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        // Here you can make any necessary updates to the activity when
        // the CAB is removed. By default, selected items are deselected/unchecked.
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        // Here you can perform updates to the CAB due to
        // an invalidate() request
        return false;
    }
});

    Hepsi bu kadar. Şimdi kullanıcı ne zaman uzun tıklama ile listeden bir item seçer ise, sistem onCreateActionMode() metodun çağıracak ve tanımlanmış olan işlemler ile birlikte contextual aciton bar görüntülenecektir. Contextual action bar görünür durumda iken kullanıcı diğer itemleri de seçebilecektir.

   Contextual işlemler(actions) sık kullanılan action itemlerini sağladığı bazı durumlarda, kullanıcının itemleri seçmesi için checkbox eklemek veya benzer UI elemanları eklemek isteyebilirsiniz. Çünkü, sık kullanılan bu itemler uzun tıklama sonucu çoğu zaman görünmeyebilir. Kullanıcı checkbox'ı seçtiği zaman, setItemChecked() metodu ile işaretlenmiş durumlarını sıralı list itemlere göre ayarlayarak contextual action modu çağırabilirsiniz.

Soru ve Görüşleriniz için: AndroidVeJava

Hiç yorum yok:

Yorum Gönder

13 Şubat 2015 Cuma

Android - Menu Kavramı ListView veya GridView'de Yığın Contextual Actions Aktif Etmek - 6

ListView veya GirdView'de Yığın Contextual Actions Aktif Etmek


    Eğer ListView veya GridView içinde item setiniz var ise ve kullanıcının yığın işlemleri (batch actions) gerçekleştirmesini istiyorsanız şunları yapmalısınız;

  • AbsListView.MultiChoiceModeListener() metodunu arayüze uygulamalı ve bunu setMultiChoiceModeListener() metodu ile view gruba ayarlamalısınız. Listener's dönüş metodunda, contextual action bar için, action itemlere yapılan tıklamalara verilecek cevap işlemleri belirleyebilir ve diğer ActionMode.Callback arayüzünden miras alınan(inherited)dönüş metotlarını işleme alabilirsiniz.
  • setChoiceMode() metodunu CHOICE_MODE_MULTIPLE_MODAL parametresi ile çağırın.

Örnek Kod:



ListView listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {

    @Override
    public void onItemCheckedStateChanged(ActionMode mode, int position,
                                          long id, boolean checked) {
        // Here you can do something when items are selected/de-selected,
        // such as update the title in the CAB
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        // Respond to clicks on the actions in the CAB
        switch (item.getItemId()) {
            case R.id.menu_delete:
                deleteSelectedItems();
                mode.finish(); // Action picked, so close the CAB
                return true;
            default:
                return false;
        }
    }

    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // Inflate the menu for the CAB
        MenuInflater inflater = mode.getMenuInflater();
        inflater.inflate(R.menu.context, menu);
        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        // Here you can make any necessary updates to the activity when
        // the CAB is removed. By default, selected items are deselected/unchecked.
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        // Here you can perform updates to the CAB due to
        // an invalidate() request
        return false;
    }
});

    Hepsi bu kadar. Şimdi kullanıcı ne zaman uzun tıklama ile listeden bir item seçer ise, sistem onCreateActionMode() metodun çağıracak ve tanımlanmış olan işlemler ile birlikte contextual aciton bar görüntülenecektir. Contextual action bar görünür durumda iken kullanıcı diğer itemleri de seçebilecektir.

   Contextual işlemler(actions) sık kullanılan action itemlerini sağladığı bazı durumlarda, kullanıcının itemleri seçmesi için checkbox eklemek veya benzer UI elemanları eklemek isteyebilirsiniz. Çünkü, sık kullanılan bu itemler uzun tıklama sonucu çoğu zaman görünmeyebilir. Kullanıcı checkbox'ı seçtiği zaman, setItemChecked() metodu ile işaretlenmiş durumlarını sıralı list itemlere göre ayarlayarak contextual action modu çağırabilirsiniz.

Soru ve Görüşleriniz için: AndroidVeJava

Hiç yorum yok:

Yorum Gönder