在Android的Activity传递中,有时候因项目需要,不仅需要从当前Activity切换到另一个Activity,还需要从另一个Activity获取返回的数据,供当前Activity使用。
本例包含两个Activity,第一个Activity只有一个Button和TextView,Button用于切换到另一个Activity选择城市,TextView用于显示结果;另一个Activity使用的是ExpandableListActivity(可展开列表),用于显示供选择的城市。
1.MainActivity:
package com.example.activityforresult; import android.content.Intent; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { public Button select; public TextView show; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); select = findViewById(R.id.select); show = findViewById(R.id.show); //绑定监听器 select.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建需要对应于目标Activity的Intent Intent intent = new Intent(MainActivity.this , SelectCityActivity.class); //启动指定Activity并等待返回结果,其中0是请求码,用于标识该请求 startActivityForResult(intent , 0); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) { //当requestCode、resultCode同为