【发布时间】:2019-06-20 12:10:47
【问题描述】:
基本上我们需要从recyclerview获取邮件
我们尝试在RecyclerView中的TextView上添加onClickListener,但是当RecyclerView中有多个条目时,我们无法获取该值。
在填充 RecyclerView 并将值传递给另一个 Activity 之前,我有什么方法可以将值存储在变量中?
我尝试从RecyclerView 中的TextView 获取值,但我总是在第一行显示文本
Intent 不适用于 Adapter 类,因为它不是一个活动
ArrayList<ModelClass> objModelClassArrayList;
public DatabaseRecyclerAdapter(ArrayList<ModelClass> objModelClassArrayList) {
this.objModelClassArrayList = objModelClassArrayList;
}
@NonNull
@Override
public DatabaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View singleRow= LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row,parent,false);
return new DatabaseViewHolder(singleRow);
}
@Override
public void onBindViewHolder(@NonNull DatabaseViewHolder holder, int position)
{
ModelClass objModelClass=objModelClassArrayList.get(position);
holder.userNameTV.setText(objModelClass.getName());
holder.userLocation.setText(objModelClass.getAddress());
String e1=objModelClass.getEmail();
holder.userEmail.setText(e1);
}
@Override
public int getItemCount() {
return objModelClassArrayList.size();
}
public static class DatabaseViewHolder extends RecyclerView.ViewHolder
{
TextView userNameTV,userLocation,userEmail;
public DatabaseViewHolder(@NonNull View itemView)
{
super(itemView);
userNameTV=itemView.findViewById(R.id.sr_userNameTV);
userLocation=itemView.findViewById(R.id.sr_location);
userEmail=itemView.findViewById(R.id.sr_email);
}
}
我想从一行中提取电子邮件并将其传递到另一个页面,在那里我可以在数据库查询中传递它以从数据库中获取结果。
【问题讨论】:
-
你的问题太混乱了。您想从 TextView 获取电子邮件并将其传递给另一个活动?
-
"无论如何我可以在填充 RecyclerView 并将值传递给另一个 Activity 之前将值存储在变量中" 是的,您只需要创建一个新的引用模型类型。例如在这种情况下,它可能是
ArrayList<ModelClass> objModelClassArrayList,因为您可以看到您已经拥有对可用数据的引用,因此请从objModelClassArrayList获取电子邮件。
标签: android android-recyclerview onclicklistener