使用场景:
类似于这种场景:第一个Activity中需要选择设备的经纬度信息(在百度选择地理位置选择),因此需要重新开一个Activity界面显示地图,让用户在地图上标注地点,取得经纬度信息,并返回第一个页面,保存在经纬度信息栏;
步骤:
1、第一个MainActivity.java:
通过startActivityForResult(Intent intent, requestCode int)方法启动第二个Activity;
package top.javaer.app.sound;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.getChuanzhi);
findViewById(R.id.startAnotherActivity).setOnClickListener(new View.OnClickListener() {
/**
* Activity之间通过Intent传递自定义的值对象
* @param view
*/
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, SecondActivity.class);
i.putExtra("user", new User("Jamie", 20));
// startActivity(i);
startActivityForResult(i, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
textView.setText("第二个Activity传过来的值是:" + data.getStringExtra("data"));
}
}
2、第二个SecondActivity.java:
通过Intent传递参数,值为editText.getText().toString();
通过setResult(resultCode int, Intent intent)设置返回状态码、返回数据;
通过finish();结束当前的Activity;
package top.javaer.app.sound;
import android.content.Intent;
import android.support.v7.app.AppCompatActi