Android:在恢复时刷新 ArrayAdapter

标签 android refresh

我正在尝试为我的主页创建刷新功能。我搜索了很多网站,但我似乎找不到(对我来说)可访问的示例。我正在从 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/

相关文章:

java - 尝试获取 deviceID 时获取 NullPointerException

android - 具有绑定(bind)类型参数的泛型父类(super class)型的 Kotlin 类型别名不适用于继承

javascript - 如何在java servlet中通过javascript刷新图像

caching - Google Datastudio 中的数据新鲜度指的是什么?

android - 将 wsdl 1.2 与 ksoap2-android 一起使用

android startActivityFromChild - API的使用

java - Android,Calendar.getInstance() 没有给出正确的月份

mysql - 如何将MySQL数据库每小时设置为 'Starting state'

css - internetexplorer @font-face(缓存?)

java - addView 到 ScrollView 中的线性布局在刷新时被删除