我创建了一个 android 应用程序,它在活动 A 中有 3 个活动(A、B、C),有 2 个自动完成功能textview
,在自动完成文本用户按下按钮中选择数据后从数据库和按钮中获取数据,然后进入下一个显示的活动listview
。
现在的问题是,当我按下设备后退按钮时,listview
显示活动 A 与自动文本中的选定数据如何在按下设备后退按钮时避免选定数据。
感谢您提前帮助
我创建了一个 android 应用程序,它在活动 A 中有 3 个活动(A、B、C),有 2 个自动完成功能textview
,在自动完成文本用户按下按钮中选择数据后从数据库和按钮中获取数据,然后进入下一个显示的活动listview
。
现在的问题是,当我按下设备后退按钮时,listview
显示活动 A 与自动文本中的选定数据如何在按下设备后退按钮时避免选定数据。
感谢您提前帮助
为了解决这个问题,我将简单地覆盖 onBackPressed() 方法,并且在那里,我将清除活动堆栈,因为没有逻辑解释将活动保留在内存中,然后对您的原始活动开始一个新的意图。这是代码。
@Override
public void onBackPressed() {
Intent intent = new Intent(this, Activity_A.class); //I suppose they are in same package
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
我希望它有所帮助。
当您按下返回按钮时,活动 A 将“恢复”。因此,在您的活动 A 中覆盖“onResume”...在 onResume 方法中,清除您的字段。
当您尝试清除上一个活动中的字段时,listactivity 的后退按钮没有任何内容。由于您在创建列表活动时没有完成以前的活动,因此以前的活动不会改变。因此,当您从列表中返回时,您所说的数据与以前相同。按照@Dave 的建议这样做,您可以在 oResume 方法或 onPause 方法中完成清除。但有一个问题。如果您在 onResume 或 onPause 中清除数据,您的数据将因其他暂停或恢复原因(如按主页或其他应用程序等)而被清除。因此您可以执行以下两项中的任何一项
选项1:
启动列表活动时清除上一个活动的数据
或者
选项 2:
而不是startActivity
调用startActiviyForResult
,也覆盖onActiviyResult
方法。因此,您可以检测到您何时从列表活动中返回。然后清除数据。
protected void onResume(){
super.onResume();
setContentView(R.layout.activity_main);
}
这也很好用..
你应该实现 startActivityforResut 当你回到这个活动的结果时,你可以清除数据