本文介绍一个简单的activity间数据回传的案例,只是对于初学者来说,比较实用,一般我们在项目的实际开发中来讲,都是已经封装好的框架。
下面是代码实现:
public class MainActivity extends AppCompatActivity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
mTextView= (TextView) findViewById(R.id.tv_data); //点击跳转 mTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(getApplicationContext(), OtherActivity.class); //注意:参数2:请求码,用于标识当前发送的请求 startActivityForResult(intent, 1); } }); } //重写此方法,得到OtherActivity回传回来的数据,requestCode:就是上边点击事件的请求码为 1,resultCode:OtherActivity
返回的结果码用于标识从哪个activity回传 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (resultCode) { case 101: textView.setText(data.getStringExtra("mLoca")); break; case 102: break; } }
}我们再来看看OtherActivity中是怎么做的:
public class OtherActivity extends AppCompatActivity { private Buttont mSend; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dingwei);
mSend = (Button)findViewById(R.id.send);
mSend.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("mLoca", "我来了"); //参数1:就是用于表示是从这个activity回传,看MainActivity中做了判断 setResult(101, intent); finish(); } });}
}