Android ListView没有(重新)填充“返回”

时间:2010-12-20 17:46:30

标签: android

我有一个简单的Android应用程序 - 一本字典。我使用ListView填充主词汇表屏幕上的字典单词。如果触摸了一个单词,则新意图会启动一个显示单词和定义的单词屏幕。问题是,如果我点击“返回”从单词屏幕返回到词汇表,则ListView不会填充。

我正在使用onStop()从词汇表屏幕移动时关闭数据库光标,而onRestart()则打开光标并(我认为)填充ListView。它似乎没有工作。

一个重要的事情,如果从单词屏幕返回词汇表屏幕(并获得没有ListView的黑屏),我会更改ListView填充的应用程序的方向。

我认为按“后退”会导致onRestart()执行。为什么要按回NOT会导致ListView填充,但更改方向呢?

由于

2 个答案:

答案 0 :(得分:3)

请改用onPause和onResume。更改方向会导致您的活动被销毁并重新启动,导航到另一个活动会导致您的活动暂停。当你点击它时它会恢复。

查看此概述 - http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

答案 1 :(得分:0)

有同样的问题,但我的可能与你的有点不同。

这对我来说很有用,在主要的活动中(有一个没有重新填充的ListView),我把它放在:

@Override
    protected void onRestart() {
        Intent intent = getIntent();
        finish();
        startActivity(intent);
        super.onRestart();
    }

可能是黑客和低效率,但适用于我的小应用程序!

编辑:这是一个更好的方法,也适用于我:

@Override
    protected void onRestart() {
        this.recreate();
        super.onRestart();
    }

注意:我认为我的应用程序发生这种情况的原因是因为我从对话框开始新活动(并且必须设置标记Intent.FLAG_ACTIVITY_NEW_TASK)。但我还在学习,可能会弄错。