Kişisel View'ler İçin Contextual Action Mode
Orijinal Döküman
Sadece kullanıcının seçtiği özel view'ler için contextual action mod çağırmak için aşağıdaki işlemleri yapmalısınız;
- ActionMode.Callback metodunu uygularsınız. Bu dönüş metodunda contextual action bar için, actions itemlere tıklandığında verilecek cevap işlemlerini belirleyebilir ve action mod için diğer lifecycle eventleri işleme alabilirsiniz.
- Action bar'ı görüntülemek isterseniz startActionMode() metodunu çağırmalısınız.(örneğin kullanıcı uzun süreli tıklama olayını gerçekleştirirse)
Örneğin:
1. ActionMode.Callback metodunu arayüze uyguluyoruz.
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
// Called when the action mode is created; startActionMode() was called
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
return true;
}
// Called each time the action mode is shown. Always called after onCreateActionMode, but
// may be called multiple times if the mode is invalidated.
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false; // Return false if nothing is done
}
// Called when the user selects a contextual menu item
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_share:
shareCurrentItem();
mode.finish(); // Action picked, so close the CAB
return true;
default:
return false;
}
}
// Called when the user exits the action mode
@Override
public void onDestroyActionMode(ActionMode mode) {
mActionMode = null;
}
};
Bu eylem geri dönüş metotların her biri olay ile ilişkili ActionMode nesnesine parametre geçirmesi dışında neredeyse OptionsMenu geri dönüş metotları ile benzerdirler. ActionMode API kullanarak CAB'da, setTitle() ve setSubtitle() metotları yardımıyla başlık ve alt başlıkları gibi çeşitli değişiklikleri gerçekleştirebilirsiniz.( ne kadar item seçildiğini göstermek için kullanışlı bir araçtır)
2. startActionMode() metodunu çağırarak contextual action modu uygun olduğu anda, örneğin View'e uzun süreli tıklanma gerçekleşmesi gibi durumlarda aktif edebilirsiniz.
someView.setOnLongClickListener(new View.OnLongClickListener() {
// Called when the user long-clicks on someView
public boolean onLongClick(View view) {
if (mActionMode != null) {
return false;
}
// Start the CAB using the ActionMode.Callback defined above
mActionMode = getActivity().startActionMode(mActionModeCallback);
view.setSelected(true);
return true;
}
});
startActionMode() metodunu çağırdığınızda, sistem oluşturulmuş olan ActionMode'a döner. Bu dönüşü üye değişkene aktarırken, diğer olaylara (eventlere) cevap verildiğinde contextual action bar'da değişiklik yapabilirsiniz. Yukarıdaki ActionMode örneğinde, AcitonMode örneği hali hazırda oluşturulmuş ise üyenin null değere sahip olup olmadığını kontrol ederek yeniden oluşturulmadığından emin olmak için kullanılmıştır.
Hiç yorum yok:
Yorum Gönder