我的Android应用程序中有两个活动'A'和'B'。
1)我第一次从'A'
进入活动'B' 2)在活动'B'中我有2个列表视图,每当我执行两个列表视图的onItemClickListener
时,我都将布尔值存储在首选项中。
3)之后当我想回到活动'A'时,我想要在活动'A'中检索首选项值。
我已经尝试了很多但不能完美地工作
这是我的一些代码
onCreate()
方法中的活动'A'
booleanValue_one = sharedPreferences.getBoolean("LISTVIEW_EVENT_ONE", false);
booleanValue_two = sharedPreferences.getBoolean("LISTVIEW_EVENT_TWO", false);
Log.e("", "booleanValue_one=" + booleanValue_one + " booleanValue_two=" + booleanValue_two + " booleanValue_three = " + booleanValue_three);
活动'B'onBackPressed()
代码
@Override
public void onBackPressed() {
super.onBackPressed();
Intent a = new Intent(B.this, A.class);
startActivity(a);
overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);
}
有人可以帮助我如何使用活动'B'的onBackPressed()
更新我以前的活动'A'
提前致谢。
答案 0 :(得分:1)
按下后退活动B.
@Override
public void onBackPressed() {
super.onBackPressed();
finish
}
活动A的简历
@Override
public void onResume() {
super.onResume();
booleanValue_one = sharedPreferences.getBoolean("LISTVIEW_EVENT_ONE", false);
booleanValue_two = sharedPreferences.getBoolean("LISTVIEW_EVENT_TWO", false);
Log.e("", "booleanValue_one=" + booleanValue_one + " booleanValue_two=" + booleanValue_two + " booleanValue_three = " + booleanValue_three);
}
答案 1 :(得分:0)
从活动中调用活动b时,使用startActivityForResult()
执行此操作startActivityForResult(pickContactIntent, ANY_REQUEST_CODE);
在活动A中重写此方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ANY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Do whatever you want. This will be a kind of callback you will get in Activity A whenever your activity B is closed
}
}
}
在活动B的onBackPress()中
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果要将任何数据发送回活动A,您可以将这些值放在returnIntent中,稍后放在活动A中,您可以通过意图检索它们。
答案 2 :(得分:0)
将您的代码放入OnResume中的Activity' A' b' z当您从活动B'按回来时它将再次打电话。活动' A'要再次恢复。 来自活动' B'只是完成活动所以活动' A'再也不会创造。
private void openActivityB(){
// open activity code in activity 'A'
}
@Override
public void onBackPressed() {
// in Activity 'B'
finish();
}
希望它会有所帮助。