我正在嘗試爲我的主頁創建一個refesh函數。我搜查了很多網站,但我似乎無法找到一個(對我來說)合適的例子。我從一個sQLLite數據庫加載信息。當我使用我的添加活動並且返回到MainScreen活動時,我添加的項目不會顯示。如何在恢復活動的那一刻刷新這些數據。Android:恢復刷新ArrayAdapter
任何幫助,歡迎提前thx。
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
在阿迪勒的意見,我的代碼更改爲
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
}
但是我得到notifyDataSetChanged一個錯誤「的方法notifyDataSetChanged是未定義的類型ListAdapter」 < - 通過改變ListAdapter固定它到ArrayAdapter,但該應用程序仍然崩潰。
你在哪裏調用showData方法? – user1114720 2011-12-24 18:37:18
有一個問題,你是如何開始你的添加活動? 兩步..如果你是通過startActivityForResult開始你的添加Activty。 1)從onActivityResult方法調用showData() 2)或者從onResume() – AAnkit 2011-12-24 19:56:58
中調用此方法設置另一個適配器是不好的方法。你應該刷新舊的適配器。 – 2011-12-26 11:12:28