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
action
,
android
,
android menü
,
contextual
,
Contextual action mode
,
Enabling batch contextual action
,
GridView
,
ListView
,
Menü Kavramı
,
mode
,
yığın menü
Hiç yorum yok:
Yorum Gönder