Je souhaite afficher une vue de liste vide, qui est ensuite renseignée par l'utilisateur. J'ai le flot de l'interface utilisateur qui fonctionne, et je remplis une liste de mes objets personnalisés après que l'utilisateur entre certaines informations via une vue qui est invoquée via setContentView (c'est-à-dire, aucune nouvelle activité).Mettre à jour ListView à partir de l'entrée utilisateur après l'appel de setContentView
Je prends l'entrée et l'ajoute à une liste, que je veux résumer sur ListView. Cependant, chaque fois que j'ajoute à la liste et/ou ArrayAdapter et j'appelle adaptateur.notifyDataSetChanged() il ne fait pas ce que je veux. Le ListView est toujours vide. Argh! Ça me rend fou!
@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;
}
S'il vous plaît, sauvez-moi de ma misère et informez-moi de ma stupidité?
Merci d'avance.
J'ai ajouté une instance de la même classe personnalisée dans onCreate qui est visible à la première vue (bien, le résultat de toString est visible), mais disparaît lorsque je clique sur le bouton Ajouter de la vue secondaire! –
@atc - Je pense que cela confirme la théorie. Vous créez/réinitialisez l'affichage de la liste lorsque vous appelez 'setContentView()'. Indépendamment de cela, l'adaptateur n'est plus associé. Il pourrait y avoir d'autres effets secondaires pour appeler 'setContentView' plusieurs fois. –
Merci ... Alors, comment puis-je obtenir ce que je veux? La liste avec laquelle je sauvegarde l'adaptateur est statique; devrais-je simplement utiliser des activités et compter sur onCreate loading à partir du champ statique? –