我很抱歉寫下了似乎是一個常見問題,但我已經在這一項任務上工作了五個小時,而我只是放棄了。使用notifyDataSetChanged()時,Android API ListView不會更新;
我正在製作一個小型的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
哪個API使用 – 2013-04-26 04:45:00
在哪個事件中您嘗試添加新的注意事項您能否顯示該事件? – GrIsHu 2013-04-26 04:51:16
它只是在活動的xml中定義的方法。在xml中有一個叫做noteNew的按鈕,單擊時調用NewNoteAction()。 – Shef 2013-04-26 04:57:55