Activity间传递数据
1 基于消息的通信机制 Intent——–boudle , extra
用这种简单的形式,一般而言传递一些简单的类型是比较容易的,如int、string等
详细介绍下Intent机制
Intent包含两部分:
1 目的【action】——-要去到哪里去
2 内容【category、data】———-路上带些什么,区分性数据和内容性数据
简单数据传递:
String data = "HELLO";
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("extra_data", data);
startActivity(intent);
putExtra()方法中第一个参数接收Key,第二个参数接收Value。
在SecondActivity中取出传过来的数据
Intent intent = getIntent();
String data == intent.getStringExtra("extra_data");
Log.i("SecondActivity","data");
写一个Demo.
1.新建工程,MainActivity.class
package com.example.passdata;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
public class MainActivity extends Activity {
private RadioButton raidoMale,radioFemale;
private EditText et_password,et_name;
private Button btn_send;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acitivity_main);
et_name = (EditText) findViewById(R.id.et_name);
et_password = (EditText) findViewById(R.id.et_password);
raidoMale = (RadioButton) findViewById(R.id.radioMale);
radioFemale = (RadioButton) findViewById(R.id.radioFemale);
btn_send = (Button) findViewById(R.id.btn_send);
btn_send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
passDate();
}
});
}
public void passDate(){
Intent intent = new Intent(this,SecondActivity.class);
//将数据存入Intent对象
intent.putExtra("name", et_name.getText().toString().trim());
intent.putExtra("password", et_password.getText().toString().trim());
String str = "";
if(raidoMale.isChecked()){
str = "男";
}else if (radioFemale.isChecked()){
str = "女";
}
intent.putExtra("sex", str);
star