Java 如何从RecycleAdapter获取值并设置为MainActivity文本?
我的适配器代码如下所示:Java 如何从RecycleAdapter获取值并设置为MainActivity文本?,java,android,textview,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.get
@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;
我在
MainActivity
中有textview
,我的问题是如何获取要在textview
中设置的值/文本id和名称?如果您想在Recyclerview上获取项目的id或名称,您可以在适配器代码中编写一个公共函数,如下所示:
public GetSet getGetSetItem(int position){
return allData.get(position);
}
然后像这样调用
MainActivity
:adapter.getsetItem(1.getId()
或适配器.getsetItem(1).getName()代码>假设您在“活动”中有标签,并且希望将更新后的字符串传递给“活动”。见以下建议
适配器
//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);
}
});
还有一件事,您可以使用recycler view的api检索视图持有者项:
findViewHolderForAdapterPosition(position)
谢谢,自定义文本怎么样?所以没有getter,只有holder.tvName.setText(“我的名字”);如何调用MainActivity?如果有自定义文本视图,我相信您可以设置您知道的默认文本或依赖于当前项的文本。所以,你可以在MainActivity中为textview再次执行此操作。谢谢你的回复,但没有更改:(仍然相同,你能给我更多的ex吗?这里有人吗