2019-05-31
1.回调函数:启用其他Activity并返回结果
MainActivity中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
//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:
1 2 3 4 5 6 7 8 9 10
|
{ // 获取启动该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; }
|
1
|
设置结果码:setResult(0, intent);
|
总结:一般可以不用结果码直接finish(),则将返回的intent带有原requestCode,该intent带上数据即可。
近期评论