如何从RecycleAdapter获取价值并设置为MainActivity Text?

时间:2017-11-13 02:39:47

标签: java android textview

我的适配器代码如下:

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
        GetSet getSet = allData.get(position);
        holder.tvId.setText(getSet.getId().toString());
        holder.tvName.setText(getSet.getName());

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        @BindView(R.id.tvId)
        TextView tvId;

        @BindView(R.id.tvName)
        TextView tvName;

我在textview中有MainActivity,我的问题是如何获取textview中设置的值/文字ID和名称?

3 个答案:

答案 0 :(得分:0)

如果您想在Recyclerview上获取项目的ID或名称您可以在适配器代码中编写公共函数,如下所示:

public GetSet getGetSetItem(int position){
  return allData.get(position);
}

然后你这样打MainActivityadapter.getGetSetItem(1).getId();adapter.getGetSetItem(1).getName();

答案 1 :(得分:0)

假设您在Activity中有标签,并且您想将更新后的字符串传递给Activity。请参阅以下建议

<强>适配器

//create an interface in adapter
public interface LabelChangeListener {
    void onLabelChanged(String text);
}

//create a method inside adapter
public void setLabelChangeListener(LabelChangeListener listener) {
    this.listener = listener;
}

//optional: create this method inside adapter
public void updateActivityLabel() {
    if (listener != null) {
        listener.onLabelChanged("this is update");
    }
}

活动

//from activity 
adapter.setLabelChangeListener(new LabelChangeListener() {
    void onLabelChanged(String text) {
        lblYourTextView.setText(text);
    }
});

答案 2 :(得分:0)

还有一件事,您可以使用回收站视图的API来检索视图持有者项目:

findViewHolderForAdapterPosition(position)