java - 通过使用带有.get(位置)的回收器视图适配器,我无法从回收器视图java中的edittext获取文本
问题描述
我是java编程新手。我正在尝试创建一个聊天应用程序,现在我想获取特定RecyclerView
布局中的文本EditText
。我使用下面的代码作为回收器视图适配器代码。但它在进入第mImagenames.get(position)
60 行时显示错误。我需要mImageNames.get(position)
正常工作。任何帮助都深表感谢。提前致谢
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>
{
private List<item_type> mImageNames;
private Context mContext;
public RecyclerViewAdapter(List<item_type> mImageNames, Context mContext) {
this.mImageNames = mImageNames;
this.mContext = mContext;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_list_item,parent,false);
ViewHolder holder =new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
item_type type =mImageNames.get(position);
if("MSG_TYPE_GROUP".equals(type.getType())){
holder.imageNames.setText(type.getName());
holder.last_messages.setText("that trick won");
}
if("MSG_TYPE_PERSONAL".equals(type.getType())){
holder.imageName.setText(type.getName());
holder.last_message.setText("that was a nice trick");
}
holder.parentLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent =new Intent(mContext,ChatActivity.class);
intent.putExtra("usernames",mImageNames.get(position));
mContext.startActivity(intent);
}
});
holder.grouplayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent =new Intent(mContext,chat_group.class);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mImageNames.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
CircleImageView image,imagess;
TextView imageName,last_message,imageNames,last_messages;
RelativeLayout parentLayout,grouplayout;
public ViewHolder(@NonNull View itemView) {
super(itemView);
image=itemView.findViewById(R.id.images);
imageName=itemView.findViewById(R.id.imageName);
last_message=itemView.findViewById(R.id.last_mess);
parentLayout=itemView.findViewById(R.id.parent_layout);
imagess=itemView.findViewById(R.id.imagess);
imageNames=itemView.findViewById(R.id.imageNames);
last_messages=itemView.findViewById(R.id.last_messs);
grouplayout=itemView.findViewById(R.id.group);
}
}
}
解决方案
查看您的代码后,很明显您正试图通过意图传递对象
intent.putExtra("usernames",mImageNames.get(position).getName());
如果您想传递名称,请尝试此操作。如果你想将对象传递给下一个活动,你可以使该类 parcelable 。
推荐阅读
- python - 挣扎于通过 WebSocket API 接收数据
- ruby-on-rails - Rails 5 - 如何根据另一个表中的数据对数据进行排序?
- json - 在 googlesheet 中导入 Json
- r - 如何解决 ggforest 的“未定义列选择”错误
- python-3.x - 贝叶斯 conv1d 错误:张量转换为 dtype int64 的张量请求 dtype float32:
这是我的输入形状:
>>>X_train.shape # features >>>(82724, 3, 32) >>>Y_train.shape # labels
- php - html表单不会提交POST
- python-3.x - 在 HTML 文档中保留一个嵌套 div 并清除所有其他
- r - 根据包含日期的名称对列进行排序
- javascript - 我如何在 swiper.js 文件中编写阿拉伯语文本?PS:不在html输出文件中,而是在js脚本文件中
- javascript - React 组件无法识别对象属性以用作从 Socket.IO 接收的值