atm我在我的应用程序中遇到了recyclerview的问题。
RecyclerView看起来像这样
分类 - 全部 在哪里 - 地方 什么时候 - 现在 谁 - 任何人
如果单击某行,则可以定义项目。 例如
分类 - 足球 哪里 - 到处都是 什么时候 - 明天 谁有人
当用户现在点击reyclerview下的按钮时,我想将选择的数据发送到我的服务器,但是我无法从Recyclerview中获取信息。
如果我使用
recyclerview.getChildAt(0).toString();
它只给了我一个RelativeLayout回来。
有人知道如何解决这个问题?
答案 0 :(得分:2)
您正在接收RecyclerView的子项,这是一个RelativeLayout。这个RelativeLayout包含你想要阅读的EditText(或TextView)。
RelativeLayout relativeLayout = (RelativeLayout) recyclerview.getChildAt(0);
EditText editText = (EditText) relativeLayout.findViewById(R.id.yourEditTextId);
String info = editText.getText();
答案 1 :(得分:0)
您必须使用列表在recyclerView中设置数据,只需从该列表中获取数据即可。像
list.get(position)
其中position是点击项目的位置。
答案 2 :(得分:0)
您应该在适配器中自定义项侦听器。
首先,使用ViewHolder实现View.OnClickListener
像这样: public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(v, getAdapterPosition());
}
}
}
之后,在适配器中自定义一个监听器和setListener:
public void setOnItemClickListener(OnItemClickListener itemClickListener) {
this.onItemClickListener = itemClickListener;
}
public interface OnItemClickListener {
void onItemClick(View view, int position);
boolean onItemLongClick(View view,int position);
}
最后,您可以根据界面的位置返回获取相应的数据
希望我能帮到你!