Я пытаюсь изменить значения, отображаемые в виде списка, в зависимости от значения из поиска. В настоящее время listview заполняется курсором (значения whos я не думаю, что могу изменить один раз в списке). Я пытаюсь добавить курсор в ArrayList перед добавлением в список.Android ArrayList Обновление значений
Мое мышление состоит в том, что я могу изменить элементы списка массивов и, в свою очередь, обновить список. У меня возникают проблемы с созданием списка массивов, а затем с его изменением, чтобы обновить представление списка.
Пример содержит элемент управления ListView 2 колонки (имя и значение), это то, что возвращается к курсору и добавлены в ArrayList. Когда указатель поиска находится на значении (например, 2), все значение в списке arrayList будет умножено на 2. Они должны обновляться только в списке, а не в базе данных.
Может кто-нибудь помочь столкнуть меня в правильном направлении, чтобы исправить мою ArrayList и применяя SeekBar изменения
Курсор и 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 = (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