抱歉,您遇到了一种普遍的问题,但我已经在这个任务上花费了五个小时,而且我放弃了。我正在制作一个小型的Android应用程序,现在它只需要保持一个小的SQLite数据库并能够编写/编辑笔记。使用SQL都很好,我的问题在于ListView。无论我做什么,当我添加新的笔记时,它都不会更新。查看新的笔记的唯一方法是进入其他笔记的编辑模式并退出。以下是源代码的相关部分:
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());
}
结尾的打印语句只是为了确认是否成功创建了新笔记。
希望我提供的信息足够,如果需要其他帮助,请告诉我。我已经尝试了几乎所有我读到的方法,但在完成一个任务上花费了将近五个小时,有时候我会发疯 :)
谢谢,
Shef