【问题标题】:Android ListView clears when starting an external ApplicationAndroid ListView 在启动外部应用程序时清除
【发布时间】:2011-10-18 14:31:21
【问题描述】:

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

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

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

这是订单 -> ListView -> 选择一个单一视图 -> 例如启动电话呼叫 -> 通过 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() 不工作

【问题讨论】:

    标签: android listview cursor adapter


    【解决方案1】:

    您必须将您的ListView 保存在onPause 中并在onResume 中重建它。 这两种方法都必须在您的 Activity 类中被覆盖。

    【讨论】:

    • 啊好的,阿迪尔谢谢你的帖子,我稍后会试试
    • 这对我没有帮助,因为我没有暂停 ListView。我从特定视图而不是从 ListView 启动外部应用程序。特定视图中的所有数据都已正确加载,但是当我通过它返回到 ListView 时它是空的。这是订单 -> ListView -> 选择一个单一视图 -> 例如启动电话呼叫 -> 通过 Backbutton 返回单一视图 -> 通过 Backbutton 返回以获取 ListView,它是空的!
    • 如果您启动一个活动(例如您的电话),该活动将设置为背景,而您的拨号器活动位于前面。在这种情况下,您的 Activity 的 onPause() 方法会被调用,并且一旦您关闭拨号器并且您的 Activity 会重新出现在屏幕上,就会调用 onResume()。
    • 所以我从哪里开始打电话并不重要?在 SingleView 以及从 ListView 启动时会调用 onPause() 方法吗?谢谢您的回复
    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多