2017-10-05 24 views
0

我想讓我的數據庫中查閱像這樣: FirebaseDB添加量成份

我從ArrayList中通過循環將其添加成分ingredientName。
我的問題是我怎樣才能輕鬆地保存數量。當用戶向ListView添加成分名稱 (例如「milk」)時,度量將來自另一個數據庫路徑(但這僅僅是未來計劃,首先我要解決數量問題)
是否必須將EditText添加到list_item。 xml?或者,如何輕鬆獲得數量然後保存?
ingredientName保存方法完美,但我不知道如何輕鬆存儲每個ingredientName的數量。

從AddIngredients活性:

private String key; 
private ArrayList<String> arrayList=new ArrayList<>(); 
ListView listView=(ListView) findViewById(R.id.listv); 
txtInput=(EditText) findViewById(R.id.IngredientsInput); 
private DatabaseReference ingDBref = FirebaseDatabase.getInstance().getReference("Ingredients"); 
private DatabaseReference DBref= FirebaseDatabase.getInstance().getReference("Recipes"); 

adapter=new ArrayAdapter<String>(this,R.layout.list_item,R.id.ingredientName,arrayList); 
listView.setAdapter(adapter); 

public void addIngredients(){ 
     final String IngredientName=txtInput.getText().toString(); 

     ingDBref.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       for(DataSnapshot data: dataSnapshot.getChildren()){ 
        if(data.child("ingredientName").getValue().equals(IngredientName)){       
      //If ingredientName=allowed ingredientNames from DB 
         arrayList.add(IngredientName); 
         adapter.notifyDataSetChanged(); 
      Toast.makeText(this,"Added to ListView...",Toast.LENGTH_LONG).show(); 
        } 
        else{ 
        } 
       } 
      } 
      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
    } 


public void saveIngredients(){ 
    key=DBref.child.push().getKey(); 
     String ingredientName; 
     for(int i=0;i<arrayList.size();i++){ 
      ingredientName=arrayList.get(i); 
      Ingredients ingredients=new Ingredients(ingredientName); 
      DBref.child(key).child("Ingredients").child(ingredientName).setValue(ingredients); 
     } 

成分類別:

public class Ingredients { 

    String ingredientName; 
    // String ingredientQty; 
    // String measureName; 

    public Ingredients(){ 
    } 

    public Ingredients(String IngredientName){ 
     this.ingredientName=IngredientName; 
     // this.ingredientQty=IngredientQty; 
     //this.measureName=MeasureName; 
    } 

    @Override 
    public String toString() { 
     return super.toString(); 
    } 

    public String getIngredientName(){ 
     return ingredientName; 
    } 
/* 
    public String getIngredientQty(){ 
     return ingredientQty; 
    }*/ 
    /* 
    public String getMeasureName(){ 
     return measureName; 
    }*/ 
} 

list_item.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/ingredientName" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textSize="24sp" /> 
</LinearLayout> 
+1

你能用純文本替換圖像嗎? –

回答

0
-KvN3vdtkelmdlemakm33kml 
    -Ingredients 
     -milk 
      -ingredientName: "milk" 
      -measure: "dl" 
      -quantity: "2" 
     -sugar 
      -ingredientName: "sugar" 
      -measure: "g" 
      -quantity: "50" 
    -recipeDescription: "asd" 
    -recipeID: "KvN3vdtkelmdlemakm33kml" 
    -recipeName: "testRecipe" 

的impoartant是下成分。