启动新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做不同的操作。
转载于:https://www.cnblogs.com/reita/p/3446813.html