Ich folgte diesem Tutorial (http://www.startingandroid.com/how-to-use-sqlite-database-in-android/), da ich relativ neu in Android-Entwicklung bin und wollte eine Vorstellung davon bekommen, wie SQL funktioniert. Da ich CardView und RecyclerView für eine Anwendung verwenden möchte, die ich gerade entwickle, war dieses Tutorial sehr hilfreich, um mich zu starten.Android Contextual Action Bar - Get RecyclerView Position
Ich bin jedoch noch weiter gegangen und habe die 'Contextual Action Bar' implementiert, um ausgewählte Elemente 'Favoriten' oder 'Löschen' zu markieren (mein Code dafür ist unten zu sehen). Meine Frage ist also, wie kann ich die Position des ausgewählten Elements abrufen und daraus die SQL ID extrahieren und wie würde ich Multi-Select mit der CAB integrieren?
@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;
}