Android onBackPressed

时间:2015-04-24 09:13:46

标签: android

我有一个Listactivity(ListView)和ListActivity上的搜索。当我单击ListActivity中的任何行时,它将启动Activity2。

问题是,当我在ListActivity上搜索时,我有搜索结果。当我点击搜索结果中的任何一行时,它会启动Activity2。当我从Activity2单击后退时,它会启动ListActivity,而不是激发搜索结果。

原因是当按下OnBack时,会在ListActivity上调用onResume,它会使用整个列表填充适配器。

有人可以指导我在按下onBack时如何启动搜索结果吗?

5 个答案:

答案 0 :(得分:0)

从Bundle对象恢复。

请检查Recreating an Activity

答案 1 :(得分:0)

简易模式解决方案是在onSaveInstanceState中设置搜索查询,并在onRestoreInstanceState中重新创建活动后恢复它

检查参考:http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState

答案 2 :(得分:0)

当您刚刚打开Activity2然后返回Activity1时,无需保存状态并将其恢复。只需添加更多代码"即可从EditText获取搜索查询并自动搜索 "在onResume()方法之后填充列表的代码

答案 3 :(得分:0)

1)在开始新的活动之前,您不需要在ListActivity中调用finish() 2)在SecondActivity中,您应该在onBackPressed()中调用完成。

//1)
private void startSecondActivity()
{
    Intent intent = new Intent(ListActivity.this, SecondActivity.class);
    //put some Extra if needed
    startActivity(intent);
}
//2)
@Override
public void onBackPressed() {
    super.onBackPressed();
    finish();
}

答案 4 :(得分:0)

我设法将最后一个键入的查询保存在变量中。然后,当按下后面时,我在填充列表后对查询进行了搜索。