Android: Actualiser ArrayAdapter sur le curriculum vitae
Je suis en train de créer un refesh fonction de ma page principale. J'ai cherché sur plusieurs site mais je n'arrive pas à trouver un (pour moi) acccesseble exaple. Je suis de chargement informations à partir d'une base de données sQLLite. Lorsque j'utilise mon complément de l'activité et je retourne à l'écran principal de l'activité de l'objet que j'ai ajouté n'apparaissent pas. Comment pourrais-je l'actualisation de ces données au moment de la reprise de l'activité.
Toute aide est la bienvenue, merci d'avance.
public ListView whiskeylist;
String[] DataArryWhiskey;
@Override
protected void onCreate(Bundle savedInstanceState) {
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Start db view of whiskey
DBConfig info = new DBConfig(this);
info.open();
DataArryWhiskey = info.getDataInArray();
info.close();
whiskeylist = (ListView) findViewById(R.id.listofWhiskey);
whiskeylist.setOnItemClickListener(this);
whiskeylist.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DataArryWhiskey));
}//end onCreate
Sur les conseils de L'Adil j'ai modifier le code pour
public ListView whiskeylist;
String[] DataArryWhiskey;
ListAdapter Adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Start db view of whiskey
DBConfig info = new DBConfig(this);
info.open();
DataArryWhiskey = info.getDataInArray();
info.close();
whiskeylist = (ListView) findViewById(R.id.listofWhiskey);
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DataArryWhiskey);
whiskeylist.setAdapter(Adapter);
//End db view of whiskey
}//end onCreate
@Override
public void onResume()
{
super.onResume();
DBConfig info = new DBConfig(this);
info.open();
DataArryWhiskey = info.getDataInArray();
info.close();
Adapter.notifyDataSetChanged(); //refresh adapter
}
mais j'ai une erreur sur notifyDataSetChanged "la méthode notifyDataSetChanged est pas défini pour le type ListAdapter" <- résolu en changeant la ListAdapter à ArrayAdapter mais l'application se bloque toujours.
Vous devez vous connecter pour publier un commentaire.
//fait des changements dans votre méthode oncreate, voir ci-dessous
une autre méthode donne ci-dessous, appelez cette méthode de sur ActivityResult(), mais avant de le faire que de s'assurer que
le domaine que vous avez ajouté avec une autre activité également enregistrées dans la base de données.
appel afficher les Données() à partir de la méthode onActivityResult ou de onResume()
Obtenir un niveau de classe de la variable de
ArrayAdapter adapter;
et initialisez-le de cette façon:et à l'intérieur de
onResume()
aime de cette façon.Ma Recommandation:
Depuis que vous obtenez vos valeurs de base de données, utilisez
SimpleCursorAdapter
au lieu deArrayAdapter
. qui va faire beaucoup d'autres travaux ont aussi pour vous.Voici un tutoriel comment utiliser
SimpleCursorAdapter
Vous pouvez essayer d'utiliser
adapter.clear();
avant d'ajouter des éléments.