Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何仅获取texview上数组中的值_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Android 如何仅获取texview上数组中的值

Android 如何仅获取texview上数组中的值,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,我一直试图在我的Firestore数据库的文本视图上显示我的食物数组。我已经能够在textview上查看数组,但lame阅读器无法读取,它们显示在数组大括号和花括号中。我想独立地提取produame、Quantity等值 下面是我的示范课和活动课 public class Request { private String phone; private String name; private String address; private String total; private String

我一直试图在我的
Firestore数据库的文本视图上显示我的食物数组。我已经能够在textview上查看数组,但lame阅读器无法读取,它们显示在数组大括号和花括号中。我想独立地提取produame、Quantity等值

下面是我的示范课和活动课

public class Request {
private String phone;
private String name;
private String address;
private String total;
private String status;
private List<HashMap<String, String>> foods; //list of food orders
private @ServerTimestamp Date timestamp;

public Request() {
}

public Request(String phone, String name, String address, String total, List<HashMap<String, String>> foods) {
    this.phone = phone;
    this.name = name;
    this.address = address;
    this.total = total;
    this.foods = foods;
    this.status = "0"; //Default is 0, 0: Place, 1: Shipping, 2: Shipped
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public String getPhone() {
    return phone;
}

public void setPhone(String phone) {
    this.phone = phone;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getTotal() {
    return total;
}

public void setTotal(String total) {
    this.total = total;
}

public List<HashMap<String, String>> getFoods() {
    return foods;
}

public void setFoods(List<HashMap<String, String>> foods) {
    this.foods = foods;
}

public Date getTimestamp() {
    return timestamp;
}

public void setTimestamp(Date timestamp) {
    this.timestamp = timestamp;
}
公共类请求{
私人电话;
私有字符串名称;
私有字符串地址;
私有字符串总数;
私有字符串状态;
私人食品清单;//食品订单清单
private@ServerTimestamp日期时间戳;
公开请求(){
}
公共请求(字符串电话、字符串名称、字符串地址、字符串总数、列表){
this.phone=电话;
this.name=名称;
this.address=地址;
这个.总计=总计;
这就是食物;
this.status=“0”//默认值为0,0:Place,1:Shipping,2:Shipping
}
公共字符串getStatus(){
返回状态;
}
公共无效设置状态(字符串状态){
这个状态=状态;
}
公共字符串getPhone(){
回电话;
}
公用无效设置电话(字符串电话){
this.phone=电话;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getAddress(){
回信地址;
}
公共无效设置地址(字符串地址){
this.address=地址;
}
公共字符串getTotal(){
返回总数;
}
公共void集合总计(字符串总计){
这个.总计=总计;
}
公众食物清单{
归还食物;
}
公共食品(列出食品){
这就是食物;
}
公共日期getTimestamp(){
返回时间戳;
}
public void setTimestamp(日期时间戳){
this.timestamp=时间戳;
}
在我的活动类中,我在onStart()实现了对firestore的调用。

@覆盖
受保护的void onStart(){
super.onStart();
FirestoreRecyclerOptions选项=新建FirestoreRecyclerOptions.Builder()
.setQuery(查询,请求.class)
.build();
适配器=新FirestoreRecyclerAdapter(选项){
@凌驾
受保护的无效onBindViewHolder(@NonNull MainActivity.DataViewHolder DataViewHolder,int i,@NonNull final Request mainUItem){
dataViewHolder.setData(mainMenuItem.getTotal()、mainMenuItem.getName()、mainMenuItem.getStatus()、mainMenuItem.getPhone(),
mainMenuItem.getAddress(),mainMenuItem.getTimestamp(),mainMenuItem.getFoods();}
@非空
@凌驾
public MainActivity.DataViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
View=LayoutFlater.from(parent.getContext()).flate(R.layout.order\u布局,parent,false);
返回新的MainActivity.DataViewHolder(视图);
}
};
recyclerView.setAdapter(适配器);
adapter.startListening();
}
公共类DataViewHolder扩展了RecyclerView.ViewHolder{
私人视野;
DataViewHolder(查看项目视图){
超级(项目视图);
视图=项目视图;
}
void setData(String orderTotalValue、String Nameof Person、String dataOrderStatus、String dataOrderPhone、String dataOrderAddress、,
日期数据日期和时间,最终列表(已订购){
TextView orderTotal=view.findViewById(R.id.order\u total);
TextView orderStatus=view.findviewbyd(R.id.order\u status);
TextView orderPhone=view.findviewbyd(R.id.order\u phone);
TextView orderAddress=view.findviewbyd(R.id.order\u地址);
TextView orderName=view.findViewById(R.id.order\u name);
TextView orderDateAndTime=view.findViewById(R.id.order\u dateTime);
TextView orderFoods=view.findViewById(R.id.order\u foods);
orderTotal.setText(orderTotalValue);
setText(convertCodeToStatus(dataOrderStatus));
setText(dataOrderPhone);
setText(dataOrderAddress);
orderName.setText(人员名称);
orderDateAndTime.setText(dataDateAndTime.toString());
//当它出现时,我必须对foods数组做什么,然后最终附加到textview!
orderFoods.setText(foodsOrdered.toString());
}
}

您可以使用ActualFoodRequest类中的折扣、价格、productId、产品名称、数量和替换等参数创建模型类(OrderData)

private List<String> foods; //list of food orders
私人食品清单;//食品订单清单
用这个

private List<OrderData> foods;
私人清单食品;

foods
变量不是
String
而是
Hashmap
,如错误中所述。尝试更改
private List foods;
private List foods;
谢谢@Hanzala,我想知道,我能让它看起来更有序吗?一个例子会让big Brother觉得你得到答案是的,stackoverflow阻止我提问。我想知道如何解析我从请求对象(request.getFoods)收到的@Hanzalaget orderData列表数组,然后循环orderList以获取所有订单数据。
private List<OrderData> foods;