Как получить значение для Recyclerview-Adapter из другого Activity и установить значение для Recyclerview конкретной позиции - PullRequest
0 голосов
/ 02 января 2019

В моем приложении я открываю еще один Activity, скажем, SecondActivity при нажатии элемента RecyclerView, SecondActivity передает некоторые данные адаптеру RecyclerView при нажатии кнопки подтверждения (RecyclerView адаптер удерживается FirstActivity).

Я должен установить эти данные только для позиции щелчка элемента, как мне этого добиться?

Я попытался определить положение адаптера и использовал notifyItemchanged(position) в методе onBindViewHolder().

1 Ответ

0 голосов
/ 02 января 2019

Вы можете установить слушателя либо в своем классе ViewHolder, либо в методе onBindViewHolder. ViewHolder:

public MyViewHolder(View v, final Activity activity) {
            super(v);
            title = v.findViewById(R.id.controller_title);
            v.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(activity, MainPanelActivity.class);
                    intent.putExtra("controllerName",title.getText().toString());
                    activity.startActivity(intent);
                    activity.finish();
                }
            });
        }

onBindViewHold:

@Override
    public void onBindViewHolder(final MyViewHolder holder, final int position) {
        Controller controller = controllerList.get(position);
        holder.title.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CustomControllerInfoDialog dialog = new CustomControllerInfoDialog(activity, holder);
                dialog.show();
            }
        });
    }

в ViewHolder вы можете передать ссылку на представление, а в методе BindView вы можете передать позицию. так что вы сможете добавить эти данные, где вы хотите

...