Je suis désolé d'écrire sur ce qui semble être un problème courant, mais je suis déjà sur cette tâche depuis cinq heures, et j'abandonne tout simplement.
Je suis en train de créer une petite application Android, tout ce qu'elle est censée faire pour le moment est de conserver une petite base de données SQLite et d'être capable d'écrire/éditer des notes dessus. Tout fonctionne bien avec SQL, mon problème est avec le ListView. Quoi que je fasse, elle refuse de se mettre à jour lorsque j'ajoute une nouvelle note. La seule façon d'afficher la nouvelle note est d'entrer en mode édition dans un autre mode et d'en ressortir.
Voici la partie pertinente de la source :
public class MainActivity extends Activity {
ArrayAdapter<NoteItem> mAdapter;
public static NoteDataBase ndb;
ListView listView;
ArrayList a;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ndb = new NoteDataBase(this);
a = ndb.getAllNotes();
//LISTVIEW DO NOT TOUCH
/***********/ mAdapter = new ArrayAdapter<NoteItem>(this,
/***********/ android.R.layout.simple_list_item_1, a);
/***********/ listView = (ListView) findViewById(R.id.listView1);
/***********/ listView.setAdapter(mAdapter);
//*****************
}
//New Note button
public void newNoteAction(View view){
ndb.addNote(new NoteItem("Title", "Contents"));
a = ndb.getAllNotes();
mAdapter = new ArrayAdapter<NoteItem>
(this, android.R.layout.simple_list_item_1, a);
mAdapter.notifyDataSetChanged();
System.out.println(ndb.getAllNotes().size());
}
L'impression à la fin est juste pour voir si la nouvelle note est effectivement créée.
J'espère avoir donné assez d'informations, dites-moi si vous avez besoin d'autre chose. J'ai essayé presque tout ce que j'ai déjà lu, mais après presque cinq heures sur une tâche, il y a un moment où je vais devenir fou :)
Merci,
Shef