启动新activity有两种方式:
startActivityForResult(Intent, int);
startActivity(Intent, Bundle);
新开启的dialog像父activity传递参数用第一种方法。
startActivityForResult(Intent, int)
intent:要传递的值
int:给新开启的dialog打标签,便于识别,同一个activity中可能开启好多个新activity
新开启的activityB用
Intent intent = new Intent(); intent.putExtra("dateTime", df.format(dateAndTime.getTime()));this.setResult(0, intent);this.finish();
这种方式向父activity传值。
那父activityA如何接收呢?
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data != null) {mShowTime.setText(data.getStringExtra("dateTime"));}}
重写onActivityResult方法,activityB调用finish()方法后,会自动调用onActivityResult。
这里面的requestCode就是我们刚刚设置的“0”,可以根据requestCode做不同的操作。