1

У меня есть активность, которая содержит RecyclerView, когда вы нажимаете на элемент в Recycler, запускаете новое действие, моя проблема заключается в возврате к активности RecyclerView, мне нужно отобразить, какой элемент щелкнуть, поэтому мне нужно прекратить финиш для активность RecyclerView,отключить операцию завершения после намерения

ПРИМЕЧАНИЕ: когда пользователь щелкает элемент, я использую просмотр изображения и скрываю, чтобы проверить элемент, когда пользователь нажимает изображение, отображается, любая идея?

это мой RecyclerView адаптер

public class ScreenRecyclerAdapter extends RecyclerView.Adapter<ScreenRecyclerAdapter.ViewHolder> { 
    Context context; 
    String image_list[]; 
    List<ImageView> items; 
    String chiliSharedpreferences = "chiliSharedpreferences"; 

    public ScreenRecyclerAdapter(String[] image_list, Context context){ 
     super(); 
     this.image_list = image_list; 
     this.context = context; 
     this.items = new ArrayList<>();} 
    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.screen_items, parent, false); 
     ViewHolder viewHolder = new ViewHolder(v); 
     return viewHolder;} 
    @Override 
    public void onBindViewHolder(final ViewHolder holder, final int position) { 
     holder.location_text_view.setText(image_list[position]); 
     items.add(holder.check_image_view); 

    } 
    @Override 
    public int getItemCount() { 
     return image_list.length; 
    } 
    class ViewHolder extends RecyclerView.ViewHolder{ 
     ImageView check_image_view ; 
     TextView location_text_view; 
     LinearLayout linear; 
     CardView loactionCardView; 
     public ViewHolder(View itemView) { 
      super(itemView); 
      check_image_view = (ImageView) itemView.findViewById(R.id.check_image_view); 
      location_text_view = (TextView) itemView.findViewById(R.id.location_text_view); 
      linear = (LinearLayout) itemView.findViewById(R.id.linear); 
      loactionCardView = (CardView) itemView.findViewById(R.id.cv); 
      loactionCardView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        MakeAllInvisbale(); 
        check_image_view.setVisibility(View.VISIBLE); 
        Intent intent = new Intent(context,MainActivity.class); 
        context.startActivity(intent); 
        SharedPreferences shared = context.getSharedPreferences(chiliSharedpreferences, MODE_PRIVATE); 
        SharedPreferences.Editor editor = shared.edit(); 
        editor.putString("screenId","id1"); 

        editor.commit(); 
       } 
      });}} 
    private void MakeAllInvisbale() { 
     for(ImageView item : items) { 
      item.setVisibility(View.INVISIBLE);}}} 
+0

сохраните выбранные значения в sharedpreference или в любом списке (проще для нескольких значений) и в вашей активности y onresume() отображает список с выбранными значениями – Nilabja

ответ

0

Вы можете сохранить SharedPreferences щелкнул вид позиции

editor.putInt("SAVED_CLICKED_ITEM", getPosition()); 

и ckeck каждый раз, когда позиция сохраняется, чему-л так:

SharedPreferences shared = context.getSharedPreferences(chiliSharedpreferences, MODE_PRIVATE); 
int position = shared.getInt("SAVED_CLICKED_ITEM", getPosition()); 
if (position == getPosition()) { 
    // do what you want 
} 
Смежные вопросы