我试图从我的Firebase数据库中获取充满信息的RecyclerView。在RecyclerView中显示Firebase数据库项目中的多个项目
我曾在数据库中只有一个项目(一个int),但现在我添加了一个字符串,它不会再工作。
我的数据库结构
-random key id
- item: "Coffee"
- points: 10
这里是我的适配器
public class RecyclerViewAdapter extends
RecyclerView.Adapter<RecyclerViewHolders> {
private List<Points> task;
protected Context context;
public RecyclerViewAdapter(Context context, List<Points> task) {
this.task = task;
this.context = context;
}
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int
viewType) {
RecyclerViewHolders viewHolder = null;
View layoutView =
LayoutInflater.from(parent.getContext()).inflate(R.layout.to_do_list,
parent, false);
viewHolder = new RecyclerViewHolders(layoutView, task);
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerViewHolders holder, int position)
{
holder.categoryTitle.setText((task.get(position).getPoints()));
holder.itemTitle.setText(task.get(position).getItem());
}
@Override
public int getItemCount() {
return this.task.size();
}
}
这里是我的ViewHolder
public class RecyclerViewHolders extends RecyclerView.ViewHolder {
private static final String TAG =
RecyclerViewHolders.class.getSimpleName();
public ImageView markIcon;
public TextView categoryTitle, itemTitle;
public ImageView deleteIcon;
private List<Points> taskObject;
public RecyclerViewHolders(final View itemView, final List<Points> taskObject) {
super(itemView);
this.taskObject = taskObject;
categoryTitle = (TextView) itemView.findViewById(R.id.task_title);
itemTitle = (TextView) itemView.findViewById(R.id.itemTV);
}
}
而我在我的主要活动代码来显示列出
allPoints = new ArrayList<Points>();
recyclerView = (RecyclerView)
view.findViewById(R.id.point_list);
linearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linearLayoutManager);
private void getAllTask (DataSnapshot dataSnapshot) {
for (DataSnapshot singleSnapshot : dataSnapshot.getChildren()) {
String taskTitle = singleSnapshot.getValue(String.class);
String taskItem = singleSnapshot.getValue(String.class);
allPoints.add(new Points(taskItem,
Integer.parseInt(taskTitle)));
recyclerViewAdapter = new RecyclerViewAdapter(getActivity(),
allPoints);
recyclerView.setAdapter(recyclerViewAdapter);
}
}
它正在工作,当我只显示'点',但现在我添加了字符串'项'它是在该字符串上抛出一个NumberFormatExepton。
java.lang.NumberFormatException:对于输入字符串: “咖啡”
这里是我的模型类以及
public class Points {
public int points;
public String item;
public Points(){}
public Points(String item, int points) {
this.points = points;
this.item = item;
}
public int getPoints(){
return points;
}
public void setPoints(int points){
this.points = points;
}
public String getItem(){
return item;
}
public void setItem(String item){
this.item = item;
}
}
这里是我的结构
beans-card
user
urx53ou8uBhRODfyqqf57kb8Z0S2
-KlYnqRvumMfu5h0FvLp
item:
"Coffee"
points:
10
和我的参考文献
DatabaseReference db_receipt =
FirebaseDatabase.getInstance().getReference().child("user").child(mUserId);
'对于输入字符串:“咖啡”'...那么不要存储:'咖啡'在那个变量 –
那么,你认为“咖啡”是一个有效的数字吗? –