从活动返回后运行代码

时间:2015-01-11 20:31:47

标签: android android-activity

点击一个按钮,我正在创建一个新意图并开始一项活动。活动返回完成后(),我想刷新一些我的屏幕元素。这就是我正在做的事情

private void onButtonClicked() {
        Intent myIntent = new Intent(this, myActivity.class);
        this.startActivity(myIntent);
        refreshButtons();
    }

我的问题是,在加载新意图时调用refreshButtons(),而不是从活动返回时调用。当我从活动开始

返回时,如何让refreshButtons()运行

2 个答案:

答案 0 :(得分:1)

试试这个

private void onButtonClicked() {        
Intent i = new Intent(this, myActivity.class);
startActivityForResult(i, 1);
        refreshButtons();
    }

在myActivity中

Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();

现在,在您的FirstActivity类中,编写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

答案 1 :(得分:0)

调用Intent时使用startActivityForResult,完成后将调用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();   
}

For more details read