Android 从活动返回后运行代码
单击一个按钮,我创建了一个新的意图并开始了一项活动。在活动返回finish()后,我想刷新一些屏幕元素。这就是我正在做的Android 从活动返回后运行代码,android,android-activity,Android,Android Activity,单击一个按钮,我创建了一个新的意图并开始了一项活动。在活动返回finish()后,我想刷新一些屏幕元素。这就是我正在做的 private void onButtonClicked() { Intent myIntent = new Intent(this, myActivity.class); this.startActivity(myIntent); refreshButtons(); } 我的问题是在加载新意图时调用refreshBu
private void onButtonClicked() {
Intent myIntent = new Intent(this, myActivity.class);
this.startActivity(myIntent);
refreshButtons();
}
我的问题是在加载新意图时调用refreshButtons(),而不是在它从活动返回时调用。如何让refreshButtons()在我从开始的活动返回时运行调用Intent时使用
startActivityForResult
,完成后将调用Intent-onActivityResult方法
private void onButtonClicked() {
Intent myIntent = new Intent(this, myActivity.class);
this.startActivityForResult(myIntent);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
refreshButtons();
}
试试这个
private void onButtonClicked() {
Intent i = new Intent(this, myActivity.class);
startActivityForResult(i, 1);
refreshButtons();
}
在我的活动中
Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();
现在,在第一个Activity类中,为onActivityResult()方法编写以下代码
别忘了先调用
super.onActivityResult
,然后在onActivityResult
上面添加@Override
,这看起来是最“干净”的方法。对我来说很好。但您还需要在以下位置添加请求代码:startActivityForResult(intent,1)代码>和super.onActivityResult(请求代码、结果代码、数据)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
refreshButtons();
}
if (resultCode == RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult