【发布时间】:2018-07-07 02:32:32
【问题描述】:
一切正常,我的 recyclerView 中的 onClick 正在获取我的项目的位置,但我的设计要求能够单击 recyclerView 的项目并打开一个新活动(作为弹出窗口或弹出)。我可以做到这一点,但我的问题来自我需要在弹出窗口上显示的信息。活动内部的信息是这样的(在 Firebase 值调用内部)
attributeList.removeAll(attributeList);
for (DataSnapshot child : dataSnapshot.child("Attribute").getChildren()){
Attribute attribute = child.getValue(Attribute.class);
attribute_list newAttributeList = new attribute_list( attribute.Name + ": " + attribute.Value);
attributeList.add(newAttributeList);
}
attributeAdapter = new attribute_list_adapter(attributeList, getContext());
recyclerAttribute.setAdapter(attributeAdapter);
这非常适合显示信息,但与点击相关的不仅仅是“值”和“名称”。
基本上,当我选择一个项目时,我需要获取单击的项目的位置(我有)并将其与属性列表中的位置进行比较,以便我可以调用 Firebase 调用(或以某种方式传递数据)到弹出框显示“属性”类中的值(例如名称、值、描述和另一个列表 (recyclerView)。
我的回收站视图:
public class attribute_list_adapter extends RecyclerView.Adapter<attribute_list_adapter.ViewHolder> {
private List<attribute_list> listItems;
private Context context;
public attribute_list_adapter(List<attribute_list> listItems, Context context) {
this.listItems = listItems;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.attribute_list, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
attribute_list listItem = listItems.get(position);
holder.txtTitle.setText(listItem.getTxtTitle());
}
@Override
public int getItemCount() {
return listItems.size();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView txtTitle;
public ViewHolder(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
txtTitle = (TextView) itemView.findViewById(R.id.txtTitle);
}
@Override
public void onClick(View v) {
}
}
}
【问题讨论】:
标签: android firebase firebase-realtime-database android-recyclerview