Back button press need to show updated value in activity
我有活动A,在那里我可以导航到
在
我完成了活动,它会转到
D->C->B->A
我需要在
我认为您必须使用sharedreference在您的后退按钮上保存数据,单击或使用静态变量。
//——————————————————存储数据————————————————————————————————————————————————————————————————————————————————————————————————
1 2 3 | SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putInt("key", countValue); editor.commit(); |
//——————————————获取数据———————————————————
1 2 3 4 5 6 7 8 9 10 | if ((keyCode == KeyEvent.KEYCODE_BACK)) { Intent home=new Intent(PersentActivity.this,DesiredActivity.class); sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); int countValue = sharedPreferences.getInt("key", 0); startActivity(home); return true; } |
你会想要一大堆的
请看这里:我如何在Android上的活动之间传递值?
或者,您可以将该值存储为
使用
如果在更新
如果您有一个数据库,那么将数据从您的
这可以通过两种方式实现:
使用共享首选项并存储更新的值,然后在活动A的onresume()中,从相同的共享首选项中读取该值并更新该值。
使用StartActivityForResult启动活动,并使用Intent对象收集值,然后使用SetResult将其传递回以前的活动。
您可以在此处了解有关活动生命周期和管理数据的更多信息活动
对于您的问题,您应该在活动A中对onresume方法中的数据进行任何更新。
1 2 3 4 | @Override public void onResume(){ //Update your data here } |
如果您关心的是如何在它们之间传递数据,那么您可能应该使用共享的首选项,因为对于如此多的活动,不建议使用StartActivityForResult。还有,是否真的有必要这样做?如果用户一更新数据,您就可以简单地启动ActivityA并直接将数据传递给它,这将更容易。
在D活动中包含此代码段。
1 2 3 4 | @Override public void onBackPressed(){ aMethodToUpdateYourActivityA(); } |