美文网首页
四、onActivityResult

四、onActivityResult

作者: giraffecode9668 | 来源:发表于2019-05-31 00:45 被阅读0次

2019-05-31

1.回调函数:启用其他Activity并返回结果

MainActivity中:

//startActivityForResult(Intent,intent,int requestCode)
@Override
    public void onCreate(Bundle savedInstanceState)
    {
        Intent intent = new Intent(MainActivity.this,SelectCityActivity.class);
         // 启动指定Activity并等待返回的结果,其中0是请求码,用于标识该请求
        startActivityForResult(intent, 0);
}

//重写onActivityResult(int requestCode,int resultCode,Intent intent)(回调函数)
@Override
    public void onActivityResult(int requestCode
            , int resultCode, Intent intent)
    {
        // 当requestCode、resultCode同时为0时,也就是处理特定的结果
        if (requestCode == 0 && resultCode == 0)
        {
            // 取出Intent里的Extras数据
            Bundle data = intent.getExtras();
            // 取出Bundle中的数据
            String resultCity = data.getString("city");
            // 修改city文本框的内容
            city.setText(resultCity);
        }
    }

SelectCityActivity:

{
                    // 获取启动该Activity之前的Activity对应的Intent
                    Intent intent = getIntent();
                    intent.putExtra("city",
                            cities[groupPosition][childPosition]);
                    // 设置该SelectCityActivity的结果码,并设置结束之后退回的Activity
                    SelectCityActivity.this.setResult(0, intent);
                    // 结束SelectCityActivity。
                    SelectCityActivity.this.finish();
                    return false;
                }
设置结果码:setResult(0, intent);

总结:一般可以不用结果码直接finish(),则将返回的intent带有原requestCode,该intent带上数据即可。

相关文章

网友评论

      本文标题:四、onActivityResult

      本文链接:https://www.haomeiwen.com/subject/aqritctx.html