3 回答
TA贡献1871条经验 获得超8个赞
首先,您需要两个引用:一个是您的EditText,一个是您的Button. 你可以在你的ViewHolder. 接下来,您需要一个OnClickListener. ViewHolder 也可以方便地实现一个,但您也可以使用onBindViewHolder()它。
在 OnClickListener 中,如果需要,您可以使用 switch 语句过滤掉您的 id,然后像这样获取 EditText 的内容:
switch(viewId) {
case R.id.buttonId:
String text = editText.getText().toString();
// do something with that text
return true;
}
如果您在 ViewHolder 中实现了 OnClickListener,则可以在 ViewHolder 中执行此button.setOnClickListener(this);操作,以确保onClick()在单击按钮时实际调用。
编辑: 这是一些应该适用于您的案例的示例代码。如上所述,我正在此处实施 View.OnClickListener 。
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
EditText editText;
Button button;
public ViewHolder(View itemView) {
super(itemView);
editText = itemView.findViewById(R.id.editText);
button = itemView.findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch(view.getId()) {
case R.id.button:
String text = editText.getText().toString();
break;
}
}
}
这是它会是什么样子,如果你是做在你的onBindViewHolder()(在这种情况下,你不要在你的ViewHolder实现OnClickListener明显):
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = holder.editText.getText().toString();
}
});
}
TA贡献1789条经验 获得超8个赞
人们在不知道答案或不理解问题时输入 -1。好搞笑!!在 onclick 中,我从视图中获取了 parent(getParent()) 并访问了父级的第二个子级。这样我就可以访问兄弟姐妹的内容。
` public void onClick(View v) {
for(int i = 0;i<parent.getChildCount();i++){
if(parent.getChildAt(i)instanceof EditText){
passwordView = (EditText)parent.getChildAt(i);
}
}
}`
TA贡献1780条经验 获得超5个赞
您可以在您的适配器中完成它,该适配器正在回收器视图中设置。
public class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView mImageView;
public MyViewHolder(View itemView) {
super(itemView);
mImageView = itemView.findViewById(R.id.imageView);
}
}
在 bindview 持有者中,您可以访问视图
public void onBindViewHolder(@NonNull final ImageAdapter.MyViewHolder holder, int position) {
holder.mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Your Code to access the edit text content
}
});
}
添加回答
举报