我正在使用自定義listview適配器來捕獲同一個域類的多個對象食物。這個類是:Listview自定義適配器 - 行添加新項目後丟失內容
public class Food {
public String Item;
public String Description;
public int count;
}
我的自定義適配器是:
public class FoodAdapter extends ArrayAdapter<Food> {
private final Context context;
private final ArrayList<Food> itemsArrayList;
EditText item
EditText desc
EditText count;
public ArrayList<Food> getItemsArrayList() {
return itemsArrayList;
}
public FoodAdapter(Context context, ArrayList<Food> itemsArrayList) {
super(context, R.layout.fr_row, itemsArrayList);
//super(context, itemsArrayList);
this.context = context;
this.itemsArrayList = itemsArrayList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 1. Create inflater
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 2. Get rowView from inflater
View rowView = inflater.inflate(R.layout.fr_row, parent, false);
// 3. Get the two text view from the rowView
item= (EditText) rowView.findViewById(R.id.f_item);
desc= (EditText) rowView.findViewById(R.id.f_desc);
count = (EditText) rowView.findViewById(R.id.f_count);
return rowView;
}
}
而且我ActivityThat座標此列表視圖是:
package com.example.foodie;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.ListView;
public class FoodActivity extends AppCompatActivity {
ListView lv;
FoodAdapter adapter;
ArrayList<Food> fList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_frmorning);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
setContentView(R.layout.activity_frmorning);
lv = (ListView) findViewById(R.id.list);
fList = new ArrayList<Food>();
adapter =new FoodAdapter(this, fList);
lv.setAdapter(adapter);
}
public void addItems(View v) {
fList.add(new Food());
adapter.notifyDataSetChanged();
}
}
這爲addItems是佈局的按鈕(FoodActivity) 。當我點擊添加,我得到新的一排。但是,新行添加後,行會丟失所有內容。他們都是空白的。什麼導致了這種行爲以及如何解決?另外,如何將EditText字段綁定到ArrayList中的數據,以便當我撥打getItemsArrayList()
時,我會得到與屏幕顯示對應的正確ArrayList?
如何將EditText中的值添加到ArrayList中的對象? –