我有一个Listactivity(ListView)和ListActivity上的搜索。当我单击ListActivity中的任何行时,它将启动Activity2。
问题是,当我在ListActivity上搜索时,我有搜索结果。当我点击搜索结果中的任何一行时,它会启动Activity2。当我从Activity2单击后退时,它会启动ListActivity,而不是激发搜索结果。
原因是当按下OnBack时,会在ListActivity上调用onResume,它会使用整个列表填充适配器。
有人可以指导我在按下onBack时如何启动搜索结果吗?
答案 0 :(得分:0)
从Bundle对象恢复。
答案 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)
我设法将最后一个键入的查询保存在变量中。然后,当按下后面时,我在填充列表后对查询进行了搜索。