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>
你能用純文本替換圖像嗎? –