Я хочу показать пустой список, который затем заполняется пользовательским вводом. У меня работает поток пользовательского интерфейса, и я заполняю список своих пользовательских объектов после того, как пользователь вводит некоторую информацию через представление, которое вызывается через setContentView (т. Е. Нет нового действия).Update ListView из пользовательского ввода после вызова setContentView
Я беру ввод и добавляю его в список, который я хочу обобщить в ListView. Однако всякий раз, когда я добавляю в список и/или ArrayAdapter и вызываю адаптер.notifyDataSetChanged(), он не делает то, что я хочу. ListView по-прежнему пуст. Argh! Это сводит меня с ума!
@Override
public void onCreate(Bundle blah) {
ListView listView = (ListView) findViewById(R.id.results_list);
listView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, list));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.mnu_add:
final Activity act = this;
setContentView(R.layout.record_details);// the sub-view that takes the user input
// the button on the form to 'add' details:-
((Button) findViewById(R.id.recored_details_add_btn))
.setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
// get input from widgets
list.add(someObject);
((ArrayAdapter<Object>) listView.getAdapter()).notifyDataSetChanged();
setContentView(R.layout.list_view);
}
}
);
((ArrayAdapter<Object>) listView.getAdapter()).notifyDataSetChanged();
break;
}
return true;
}
Пожалуйста, спасите меня от моих страданий и сообщите мне о моей глупости?
Заранее спасибо.
Я добавил экземпляр того же пользовательского класса в onCreate, который виден на первом представлении (ну, результат toString виден), но исчезает, когда я нажимаю кнопку добавления на подзадаче! –
@atc - Я думаю, что это подтверждает теорию. Вы создаете/повторно инициализируете представление списка, когда вы вызываете 'setContentView()'. Независимо от этого, адаптер больше не связан. Могут быть другие побочные эффекты для вызова 'setContentView' несколько раз. –
Спасибо ... Так как я могу получить то, что хочу? Список, в котором я поддерживаю адаптер, является статическим; должен ли я просто использовать действия вместо этого и полагаться на onCreate loading из статического поля? –