Как получить значение String из onBindViewHolder? - PullRequest
0 голосов
/ 13 июля 2020

Я использую Recycleview для отображения моих данных из базы данных. Моя проблема в том, что я хочу передать значение другому действию. это мой код:

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    holder.gameName.setText(games.get(position).getGameName());
    holder.gamePublisher.setText(games.get(position).getGamePublisher());
}

@Override
public int getItemCount() {
    return games.size();
}


public static class MyViewHolder extends RecyclerView.ViewHolder{
    TextView gameName,gamePublisher;
    public MyViewHolder(View itemView) {
        super(itemView);
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String value = gameName.toString();
                Intent intent = new Intent();
                intent.putExtra("value", value);
                ((Activity)v.getContext()).setResult(RESULT_OK, intent);
                ((Activity)v.getContext()).finish();
            }
        });
        gameName = itemView.findViewById(R.id.gamename);
        gamePublisher = itemView.findViewById(R.id.gamepublisher);
    }
}

, и я получил это из моего EditText в другом действии:

androidx.appcompat.widget.AppCompatTextView {63b682 c V.Ed .. ... ... P ... 0,0-1080,97 # app: id / gamename}

1 Ответ

0 голосов
/ 13 июля 2020

изменить

String value = gameName.toString();

на

String value = gameName.getText().toString();

первая строка отправит View "закорочено" на String (чтобы вы могли видеть некоторые ha sh, View class, size et c.), Вам нужен только текст в этом поле, поэтому getText()

...