在活动A 中,有一个带值的变量。从这里用户转到活动B 然后转到活动C 。在这里,他做了一些改变活动A 中的变量的东西。因此,当用户从活动C 返回活动B 返回活动A 时,必须更改该值。为了简单起见,我想要的是当用户返回(通过单击“返回”按钮)到活动A 而不必再次启动时显示Toast消息。
通过更改变量我的意思是当活动A 显示给用户时,它需要知道活动C 中发生的事情活动A 更改变量(通过运行脚本或其他内容)。
问题是当我启动活动A 时会显示Toast消息,但是当我从活动C 返回活动B 到活动A 。
以下是我的尝试:
OnCustomEventListener.java
public interface OnCustomEventListener {
public void onEvent();
}
活动A:
@Override
public void onCreate(Bundle savedInstanceState) {
Activity_YourProfile actv_yourprofile = new Activity_YourProfile();
//endless lines of code
actv_yourprofile.setCustomEventListener(new OnCustomEventListener(){
public void onEvent(){
Toast.makeText(Activity_MyProfile.this, "performed", Toast.LENGTH_SHORT).show();
}
});
}
活动B:
Nothing special just an intent that takes user to Activity C.
活动C:
private OnCustomEventListener mListener;
@Override
public void onCreate(Bundle savedInstanceState) {
//code
setCustomEventListener(mListener); //calling callback e.g. on Btn click
}
public void setCustomEventListener(OnCustomEventListener eventListener) {
this.mListener=eventListener;
if(this.mListener!=null){
this.mListener.onEvent();
}
}
基于Mocialov Boris的solution。