我能';t使用带有.get(位置)的recycler视图适配器从recycler视图java中的edittext获取文本
我是java编程新手。我正在尝试创建一个聊天应用程序,现在我想获取特定我能';t使用带有.get(位置)的recycler视图适配器从recycler视图java中的edittext获取文本,java,android,android-recyclerview,Java,Android,Android Recyclerview,我是java编程新手。我正在尝试创建一个聊天应用程序,现在我想获取特定RecyclerViewlayoutEditText中的文本。我使用了下面的代码作为recycler视图适配器代码。但是它在获取第60行中的mimagnames.get(position)时显示错误。我需要mimagnames.get(position)正常工作。非常感谢您的帮助。提前谢谢 public class RecyclerViewAdapter extends RecyclerView.Adapter<Recy
RecyclerView
layoutEditText
中的文本。我使用了下面的代码作为recycler视图适配器代码。但是它在获取第60行中的mimagnames.get(position)
时显示错误。我需要mimagnames.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);
}
}
}
公共类RecycleServiceAdapter扩展了RecyclerView.Adapter
{
私人名单;
私有上下文;
公共RecycleServiceAdapter(列出图像名称、上下文mContext){
this.mImageNames=mImageNames;
this.mContext=mContext;
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
View View=LayoutInflater.from(parent.getContext()).flate(R.layout.layout\u list\u项,parent,false);
ViewHolder=新的ViewHolder(视图);
报税表持有人;
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,final int位置){
项目类型=mimagnames.get(位置);
if(“MSG_TYPE_GROUP.”等于(TYPE.getType()){
holder.imageNames.setText(type.getName());
holder.last_messages.setText(“那个把戏赢了”);
}
if(“MSG_TYPE_PERSONAL”.equals(TYPE.getType())){
holder.imageName.setText(type.getName());
holder.last_message.setText(“这是个好把戏”);
}
holder.parentLayout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
意向意向=新意向(mContext,ChatActivity.class);
intent.putExtra(“用户名”,mimagnames.get(位置));
mContext.startActivity(意图);
}
});
holder.grouplayout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
意向意向=新意向(mContext,chat_group.class);
mContext.startActivity(意图);
}
});
}
@凌驾
public int getItemCount(){
返回mimagnames.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
CircleImageView图像,imagess;
TextView imageName、last_消息、imageName、last_消息;
RelativeLayout parentLayout、grouplayout;
公共视图持有者(@NonNull View itemView){
超级(项目视图);
image=itemView.findviewbyd(R.id.images);
imageName=itemView.findViewById(R.id.imageName);
last_message=itemView.findviewbyd(R.id.last_mess);
parentLayout=itemView.findviewbyd(R.id.parent\u布局);
imagess=itemView.findViewById(R.id.imagess);
imageNames=itemView.findViewById(R.id.imageNames);
last_messages=itemView.findviewbyd(R.id.last_mess);
grouplayout=itemView.findviewbyd(R.id.group);
}
}
}
查看您的代码后,很明显您正试图有意地传递对象
intent.putExtra("usernames",mImageNames.get(position).getName());
如果要传递名称,请尝试此操作。如果要将对象传递给下一个活动,可以将该类设置为可包裹的
查看此项了解更多详细信息您能分享错误吗?第一个猜测是您正在为一个类型分配一个int?
intent.putExtra(“usernames”,mimagnames.get(position))对于测试,请删除onClick()块中的所有代码,并仅显示Toast()显示位置。然后告诉你的问题.intent.putExtra(“用户名”,mimagnames.get(position.getName());试试这个位置变量的起始值是多少。我们可以通过将getName()更改为其他值来获得其他属性吗?是的,您可以使用item_type对象拥有的任何方法/数据