So starten Sie die Aktivität mit dem ausgewählten Kartenelement von Recycle View, wenn die App erneut gestartet wird.Aktivität mit ausgewähltem Positionselement im Recycling starten Ansicht
Details:
Ich habe drei Aktivitäten: Splash Screen, Kartenliste und Detailansicht.
Kartenliste Aktivität enthält eine Liste von Karten. Jedes einzelne Element der Liste hat ein Menü. Im Menü gibt es eine Option, die "Standardkarte festlegen" ist.
Karte Details dieser Aktivität Details der Karte anzeigen.
Problem:
Nun, wenn ich wählen Sie Set Standardkarte haben, ausgewählte Karte grüne Grenze enthält.
Wenn ich Standard-Karte setzen und meine App beenden, so nächste, wenn ich meine App dann öffnen, sollte es zu Card Details Aktivität mit ausgewählten Karte gehen.
Hinweis: i verwenden Datenbank zum Speichern von Kartendaten und Standardkarte
Mein Code:
CardAdapter.class
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder> {
private static int lastCheckedPos = 0;
private Context mContext;
private ArrayList<Card> cardsList;
boolean isError;
public CardAdapter(Context mContext, ArrayList<Card> cardsList, String key) {
this.key = key;
this.mContext = mContext;
this.cardsList = cardsList;
notifyDataSetChanged();
}
@Override
public CardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_card, parent, false);
return new CardViewHolder(view);
}
@Override
public void onBindViewHolder(CardViewHolder holder, final int position) {
final Card card = cardsList.get(position);
databaseHandler = new DatabaseHandler(mContext);
[enter image description here][1]
//ustawienie zaznaczenia na wybranej pozycji
if (position == lastCheckedPos) {
holder.cardView.setBackgroundResource(R.drawable.bordercardview);
} else {
holder.cardView.setCardBackgroundColor(Color.WHITE);
holder.menu.setOnClickListener(new View.OnClickListener() {
Typeface custom_fonts = Typeface.createFromAsset(mContext.getAssets(), "fonts/OpenSans-Regular.ttf");
Typeface custom_fonts_Bold = Typeface.createFromAsset(mContext.getAssets(), "fonts/OpenSans-Bold.ttf");
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(mContext, v);
popupMenu.inflate(R.menu.cardmenu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.defaultCard:
int prePos = lastCheckedPos;
lastCheckedPos = position;
notifyItemChanged(prePos);
notifyItemChanged(lastCheckedPos);
break;
}
return false;
}
});
popupMenu.show();
}
});
}
}
@Override
public int getItemCount() {
return cardsList.size();
}
}
Speichern Sie Ihre lastCheckedPos in SharedPreferences und füllen Sie damit den Adapter – anonymous