Android eğitimine göreceli olarak yeniyken ve SQL'in nasıl çalıştığına dair bir fikir edinmek istediğim için bu eğiticiyi (http://www.startingandroid.com/how-to-use-sqlite-database-in-android/) takip ettim. Ben geliştirmeye çalıştığım bir uygulama için CardView ve RecyclerView kullanmak için arıyorum, bu öğretici bana başlamakta çok yardımcı oldu. Bununla birlikte, 'Favori' veya 'Sil' seçili öğeleri yapabilmek için 'İçeriğe Dayalı Eylem Çubuğu'nu daha ileri gittim ve uyguladık (bunun için benim kodum aşağıda görülebilir). Yani, sorum şu ki, seçilen öğenin konumunu nasıl alabilirim ve SQL ID'yi bundan nasıl çıkarabilirim ve CAB ile çoklu seçim yapmayı nasıl başarabilirim?Android Bağlamsal İşlem Çubuğu - Get RecyclerView Pozisyon
@Override
public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.user_row, parent, false);
UserViewHolder userViewHolder = new UserViewHolder(v);
v.setClickable(true);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v, "CLICK", Snackbar.LENGTH_SHORT).show();
}
});
v.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Snackbar.make(v, "LONG CLICK", Snackbar.LENGTH_SHORT).show();
if (mActionMode != null) {
return false;
}
v.startActionMode(new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.context, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
//get number of selected items
switch (item.getItemId()) {
case R.id.context_favourite:
//SQL - Favourite Item
mode.finish();
case R.id.context_delete:
//SQL - Delete Item
mode.finish();
}
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
mActionMode = null;
}
});
return true;
}
});
return userViewHolder;
}