#android #android-intent #android-activity #android-recyclerview
#Android #android-намерение #android-активность #android-recyclerview
Вопрос:
у меня есть действие, которое содержит 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);}}}
Комментарии:
1. сохраните выбранные значения в sharedpreference или в любом списке (проще для нескольких значений), а в onresume () вашего действия отобразите список с этими выбранными значениями
Ответ №1:
Вы можете сохранить в SharedPreferences
нажатой позиции просмотра
editor.putInt("SAVED_CLICKED_ITEM", getPosition());
и проверяйте каждый раз, сохраняется ли позиция, что-то вроде этого:
SharedPreferences shared = context.getSharedPreferences(chiliSharedpreferences, MODE_PRIVATE);
int position = shared.getInt("SAVED_CLICKED_ITEM", getPosition());
if (position == getPosition()) {
// do what you want
}