启动外部应用程序时,Android ListView会清除

时间:2011-10-18 14:31:21

标签: android listview cursor adapter

在我的Android应用程序中,我使用ListView来访问显示其他信息和功能的特定视图。 一切都运行良好,但是当我启动Phonecall功能或打开Weblink(这两个功能在特定视图中可用)然后通过按两次后退按钮返回应用程序时,ListView为空!

当我使用Google地图等内部功能或特定视图中的任何其他内部功能时,不会发生这种情况。

我猜适配器或光标存在一些问题。 我只见过adapter.notifyDataSetChanged(),但我没有更改任何数据。我只是希望它再次出现。

这是订单 - > ListView - >选择单个视图 - >例如,启动PhoneCall - >通过Backbutton返回单一视图 - >通过Backbutton返回获取ListView,它是空的!


// public replacing function for ordering the views
public void replaceView(View v) {
    history.add(v);
    setContentView(v);
}
// function that is called when the back button is pressed, controlling the views stack
public void back() {
    if (history.size() > 0) {
        history.remove(history.size() - 1);
        if (history.size() > 0) {
            setContentView(history.get(history.size() - 1));
        } else {
            finish();
        }
    } else {
        finish();
    }
}
// remove site from stack and go the last view (Overriding Back Button)
@Override  
public void onBackPressed() { 
    FrontPage.group.back();
} 

这是后退按钮的定义方式。 onPause()onResume()无效

1 个答案:

答案 0 :(得分:0)

您必须将ListView保存在onPause并在onResume重建。{1}}。 必须在Activity类中重写这两种方法。