我試圖改變在列表視圖中顯示的值,這取決於seekbar的值。目前listview正在由遊標填充(whos值,我不認爲我可以在列表中更改一次)。我想在添加到列表之前將光標添加到ArrayList中。Android ArrayList更新值
我的想法是,我可以更改數組列表元素,並依次更新列表視圖。我遇到了創建數組列表的問題,然後改變它來更新列表視圖。
例 ListView中包含2個列(名稱和值),這些是什麼都被返回到光標並添加到該ArrayList。當seekbar值(例如2)時,arrayList中的所有值都將乘以2.它們只能在列表中而不是在數據庫中更新。
誰能幫我推在正確的方向來解決我的ArrayList和應用搜索條改變
光標和ArrayList
final Cursor ings = adapter.getIngs(Code);
ingredients.moveToFirst();
ArrayList<String> IngsList = new ArrayList<String>();
while(!ings.isAfterLast())
{
Ings.add(ings.getString(ings.getColumnIndex("name")));
Ings.add(ings.getInt(ings.getColumnIndex("measurement")));
Ings.add(ings.getString(ings.getColumnIndex("unit")));
}
ings.close();
String[] columns = new String[] {adapter.KEY_NAME, adapter.KEY_MEASUREMENT, adapter.KEY_UNIT};
int[] to = new int[] {R.id.Name, R.id.Measurement, R.id.Unit};
final SimpleCursorAdapter Adpater = new SimpleCursorAdapter(this,R.layout.row5, ingredients, ingredient_columns, to, 0);
ListView Required = (ListView) findViewById(R.id.Required);
Required.setAdapter(Adpater);
搜索欄
seekBar = (SeekBar) findViewById(R.id.servingSeek);
textView = (TextView) findViewById(R.id.actualServing);
// Initialize the textview with '0'
textView.setText("Serving Size:" + seekBar.getProgress());
seekBar.setOnSeekBarChangeListener(
new SeekBar.OnSeekBarChangeListener() {
int progress = 0;
@Override
public void onProgressChanged(SeekBar seekBar,
int progresValue, boolean fromUser) {
progress = progresValue;
textView.setText("Serving Size:" + progress);
//alter cursor values
//update cursor
}
您可以創建和使用自定義適配器,而不是一個'SimpleCursorAdapter'。 – Titus
會有什麼不同? – JJSmith
你可以用一個'ArrayList'而不是'Cursor'工作的適配器,這樣你就可以從'ListView'中添加/刪除項目。 – Titus