我的适配器代码如下:
@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和名称?
答案 0 :(得分:0)
如果您想在Recyclerview上获取项目的ID或名称您可以在适配器代码中编写公共函数,如下所示:
public GetSet getGetSetItem(int position){
return allData.get(position);
}
然后你这样打MainActivity
:adapter.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)