Actualiser la ListView après la mise à jour dans une autre Activité
J'ai deux Activités simples -
Activity1: ListView à partir d'un Tableau
Activity2: EditText pour l'édition de l'cliqué ligne dans Activity1
Quand j'ai modifier la valeur dans Activity2 et le retour à l'Activity1, la liste ne recharge pas la nouvelle valeur.
Je veux actualiser la liste lorsque je reviens de Activity2 ou reprendre Activity1 ou quelque chose qui va mettre à jour la liste.
Mon code:
static ArrayAdapter<String> dataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Loading the values to list array
String[][] fulllist = loadArrays();
String[] list = new String[fulllist.length];
for(int i = 0; i<fulllist.length; i++) {
list[i] = fulllist[i][1];
}
//--------------------------------
dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
list);
setListAdapter(dataAdapter);
}
@Override
public void onResume() {
super.onResume();
//Loading the values to list array
String[][] fulllist = loadArrays();
String[] list = new String[fulllist.length];
for(int i = 0; i<fulllist.length; i++) {
list[i] = fulllist[i][1];
}
//--------------------------------
dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
list);
dataAdapter.notifyDataSetChanged();
}
loadArrays() est juste la méthode qui convertit les SharedPreferences de Tableau de chaînes. Activity2 enregistre les nouvelles données dans SharedPreferences et que Activity1 pouvez le lire (avec les nouvelles données).
Si je reviens à la "activité principale" (il n'est pas Activity1) et que revenir à Activity1 - les nouvelles données sont affichées, mais je veux que ces données seront mises à jour lorsque je serai de retour à partir de Activity2 immédiatement.
loadArrays() la méthode: pastebin.com/MHwNC0jK
Vous remerciant par avance!
OriginalL'auteur Dennis | 2012-11-30
Vous devez vous connecter pour publier un commentaire.
En cliquant sur l'élément de votre première Activité, de commencer votre deuxième Activité avec
startActivityForResult()
Et puis dans la Deuxième Activité, après l'entrée en
EditText
, il y a probablement un bouton. Et dansonClick
du bouton d'appel,Maintenant vous revenez à votre première Activité, et ici vous avez à mettre en œuvre
onActivityResult()
de rappel. Vous pouvez extraire des données à partir de l'intention des figurants et définir élément correspondant dans votre tableau et appelnotifyDataSetChanged()
.C'est idéalement comment vous devriez le faire.
Si vous voulez plus d'info sur la façon d'utiliser startActivityForResult (), essayez ce lien - http://manisivapuram.blogspot.in/2011/06/how-to-use-startactivityforresult.html
Merci beaucoup! Cela a fonctionné!
OriginalL'auteur Sudarshan Bhat
1) Obtenir une référence ListView
2) Créez de l'adaptateur Une fois de plus avec les valeurs modifiées
OriginalL'auteur kumar
Déclarer fulllist comme Globle Variable et utilisé static arraylist .
OriginalL'auteur Hemantvc