【问题标题】:Android Activity ListView LoaderManager Navigation with remembering previous stateAndroid Activity ListView LoaderManager 导航与记住以前的状态
【发布时间】:2012-07-29 12:01:55
【问题描述】:

我的启动器活动会生成一个 ListView。

现在在 ListView 上,我有一个 setOnItemClickListener,它基本上会将位置和 id 传递给一个新活动。

mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(ActivityHome.this, ActivityDetail.class);
            intent.putExtra("cm_position", position);
            intent.putExtra("cm_id", id);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    });

现在 ActivityHome 中的 ListView 显示在 ListView 中间的某个位置。

当我在 ActivityDetail 中时,我有一个 actionBar.setDisplayHomeAsUpEnabled(true);所以当下面执行时,它会回到ActivityHome

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent intent = new Intent(this, ActivityHome.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

问题是 ListView 中的位置丢失,ListView 回到顶部。有没有办法阻止 onCreate() 被执行,只为 ActivityDetail 销毁 Activity,然后回到 ActivityHome 到原来的样子......我希望你能理解。

我想我可能为意图设置了错误的标志...

【问题讨论】:

    标签: android android-activity android-loadermanager


    【解决方案1】:

    固定:

    在ActivityDetail中,需要设置这个标志

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
    

    我知道这与正确使用标志有关!!!

    上面示例中当前运行的活动 B 实例将在其 onNewIntent() 方法中接收您在此处启动的新意图,或者自身完成并使用新意图重新启动。如果它已声明其启动模式为“multiple”(默认)并且您没有在同一意图中设置 FLAG_ACTIVITY_SINGLE_TOP,那么它将完成并重新创建;对于所有其他启动模式,或者如果设置了 FLAG_ACTIVITY_SINGLE_TOP,则此 Intent 将被传递到当前实例的 onNewIntent()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多