2017-08-08 7 views
0

アプリケーションが再開すると、リサイクルビューの選択したカードアイテムでアクティビティを開始する方法。リサイクルで選択された位置アイテムのアクティビティを開始表示

詳細:スプラッシュ画面カードリストカード詳細

私は3つのアクティビティがあります。

  • カードリスト活動は、カードのリストが含まれています。リストのすべての単一項目にはメニューがあります。メニューには「デフォルトカードを設定する」という1つのオプションがあります。

  • カード詳細このアクティビティはカードの詳細を示しています。

問題:私は選択を設定し、デフォルトのカードをした場合

は今、選択したカードは、緑色の枠が含まれています。

デフォルトのカードを設定してアプリを終了すると、次にアプリを開くと、選択したカードのカード詳細アクティビティに移動する必要があります。

注:私は店カードの詳細やデフォルトのカードにデータベースを使用

マイコード:

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(); 
    } 

} 
+0

lastCheckedPosをSharedPreferencesに格納し、これを使用してアダプタを埋めます – anonymous

答えて

1

リサイクラビュー:

recyclerView.getLayoutManager().scrollToPosition(position); 
関連する問題