У меня есть действие, содержащее горизонтальное представление recyclerView, которое работает нормально, и ниже приведены некоторые текстовые представления, которые мне нужно установить, щелкая по каждому элементу в этом recyclerView.Я сделал это с помощью намерения отправить «позицию элемента» из адаптера и перезапустить всю активность, чтобы получить связанную информацию с этой позиции, но это стоит мне отправить еще один избыточный запрос на сервер во время перезапуска активности.Любой альтернативный подход к этому?Вот некоторые части кода: в UserActivity:
if (userViewModel.getStatus().equals("SUCCESS")) {
viewHolder.rView.setItemAnimator(new DefaultItemAnimator());
viewHolder.rView.setAdapter(new AddFormsListAdapter(
userViewModel.getResult(), R.layout.item_rv_request, MyApplication.getAppContext()));
intent = getIntent();
if (intent != null) {
Bundle extras = intent.getExtras();
if (extras != null) {
int position = extras.getInt("ITEM_POSITION");
viewHolder.tvCity.setText(userViewModel.getResult().get(position).getCity());
}
}
и в адаптере:
holder.setItemClickListener(new ListItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
Intent intent = new Intent(context, UserAddRequestActivity.class);
intent.putExtra("ITEM_POSITION", position);
context.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
((UserAddRequestActivity) view.getContext()).finish();
}
});