我正在尝试为我的主页创建刷新功能。我搜索了很多网站,但我似乎找不到(对我来说)可访问的示例。我正在从 sqLLite 数据库加载信息。当我使用添加 Activity 并返回主屏幕 Activity 时,我添加的项目不会出现。我如何在 Activity 恢复时刷新此数据。
欢迎任何帮助,提前致谢。
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
根据 Adil 的建议,我将代码更改为
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上收到错误“ListAdapter类型的notifyDataSetChanged方法未定义”<-通过将ListAdapter更改为ArrayAdapter来修复它,但应用程序仍然崩溃。
最佳答案
//在 oncreate 方法中进行了更改,请参见下文
DBConfig info;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Start db view of whiskey
info = new DBConfig(this);
whiskeylist = (ListView) findViewById(R.id.listofWhiskey);
whiskeylist.setOnItemClickListener(this);
}// end onCreate
下面给出了另一个方法,从 ActivityResult() 调用此方法,但在执行此操作之前请确保 您在另一个 Activity 中添加的字段也保存到数据库中。 从 onActivityResult 方法或 onResume() 调用 show Data()
private void showData()
{
info.open();
DataArryWhiskey = info.getDataInArray();
info.close();
whiskeylist.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DataArryWhiskey));
}
关于Android:在恢复时刷新 ArrayAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625671/