Otwarcie szczegółu karty od zaznaczonej pozycji na liście

0

Witam,
Mam peweniem problem .
Mam trzy aktywnosci
Splash screen, List Card, Card Details.
Po utworzeniu karty Podana karta znajduje się na liscie kart. Ponadto zawiera opcje "Ustaw jako domyślą"
Opcja ta powoduje ze przy zamknięciu aplikacji i jak wchodzimy do tej aplikacji powinna od razu wejść do Card Details z szczegółami zaznaczonej pozycji karty.
Aktualnie teraz zapisuję zaznaczoną pozycję do Sharepreference, nie mam pojęcia jak to zrobić.

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder> {

    private static int lastCheckedPos = 0;
    private Context mContext;
    private ArrayList<Card> cardsList;
    boolean isError;
    private MySharepreference mySharepreference;



    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);
        mySharepreference = new MySharepreference();
    

        //ustawienie zaznaczenia na wybranej pozycji
        if (position == lastCheckedPos) {

            holder.cardView.setBackgroundResource(R.drawable.bordercardview);
            mySharepreference.saveCurrentPosition(mContext, lastCheckedPos);

        } 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);
                                    mySharepreference.saveCurrentPosition(mContext, lastCheckedPos);
                                    break;
                            }
                            return false;
                        }
                    });
                    popupMenu.show();
                }
            });
        }

    }

    @Override
    public int getItemCount() {
        return cardsList.size();
    }

}

titlehttp://www.magdalenadziesinska.pl/wp-content/uploads/2017/08/Bez-tytułu.png

1

Powinnaś do tego podejść w inny sposób. IMO każda karta powinna mieć swoje ID i to ID powinnaś zapisywać w SharedPrefe jako default. Potem w SplashScreen wyciągnąć to ID i otworzyć CardDetailActivity z tym ID, w onCreate pobrać szczegóły karty i wczytać do widoku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1