【问题标题】:How to create an Increment Numeric String Value inside model and read the value inside Firebase Database using Android Studio?如何在模型中创建增量数字字符串值并使用 Android Studio 读取 Firebase 数据库中的值?
【发布时间】:2018-06-15 00:23:30
【问题描述】:

例如。我希望我的 Firebase 数据的结构是这样的 ... ... ... ...

"Food" 
        -> uid 
              -> 1 - name& value
                 2 - name& value
                 3  - name& value 
                 
        -> uid 
              -> 1 - name& value 
                 2 - name& value
                 3 - name& value

我只想从 FirebaseDatabase 检索数据,而不通过应用输入任何数据。

如何在我的模型类中创建增量数字字符串值“1++”而不影响字符串

并使用回收器适配器将其作为字符串值“x”读取

或者有没有其他方法来编码这个因为我还是新手

带有 ViewHolder 函数的 FirebaseRecyclerAdapter

@Override
    public void onStart() {
        super.onStart();

        FirebaseRecyclerAdapter<Ingredients, IngredientsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Ingredients, IngredientsViewHolder>(
                Ingredients.class,
                R.layout.list_single_ingredients,
                IngredientsViewHolder.class,
                mDatabase

        ) {
            @Override
            protected void populateViewHolder(IngredientsViewHolder viewHolder, Ingredients model, int position) {
                viewHolder.setX(model.getX());

            }
        };
        Ingredients_list.setAdapter(firebaseRecyclerAdapter);


    }


    //ViewHolder
    public static class IngredientsViewHolder extends RecyclerView.ViewHolder {
        View m2View;

        public IngredientsViewHolder(View itemView) {
            super(itemView);


            m2View = itemView;
        }

        public void setX(String x) {
            TextView IngredientsView = (TextView) m2View.findViewById(R.id.txt_ingredients);
            IngredientsView.setText(x);

        }

    }


}

我的模型课

package Model;

/**
 * Created by Keiren on 1/4/2018.
 */

public class Ingredients {
    public String x;



    public Ingredients() {

    }
    public Ingredients(String x) {
        this.x = x;
    }


    public String getX() {return x;}

    public void setX(String x) {
        this.x = x;
    }
}

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    我找到了我自己的解决方案的答案, 从

    更改它

    mDatabase = FirebaseDatabase.getInstance().getReference().child("Food").child(user_id); 到

    mDatabase = FirebaseDatabase.getInstance().getReference("Food").child(user_id);

    "Food" 
            -> uid 
                  -> 1 
                      -> x - name& value
                     2 
                      -> x- name& value
                     3  
                      -> x- name& value 
                     
            -> uid 
                  -> 1 
                    -> x - name& value 
                     2 
                     -> x - name& value 
                     3 
                     -> x - name& value 

    【讨论】:

      【解决方案2】:

      要解决这个问题,您首先需要将您的 String 转换为 int,增加值,然后将 int 转换回 String,如下所示:

      String one = "1";
      int two = Integer.valueOf(one);
      two++;
      String increasedValue = String.valueOf(two);
      System.out.println(increasedValue);
      

      输出将是:2

      【讨论】:

      • 两个++;会有一个意外的令牌
      • 我测试了上面的代码并且工作正常。尝试将这一行 two++; 更改为:two = two + 1;
      • unknown class 是为了什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2013-07-04
      相关资源
      最近更新 更多