先看MainActivity
private Button m_bCreateActivityButtonBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m_bCreateActivityButtonBtn = (Button)findViewById(R.id.button1);
m_bCreateActivityButtonBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.print("onClick\n");
Intent nextActivity = new Intent(MainActivity.this, AppL.class);
nextActivity.putExtra("txt", "main put"); //通过button的putExtra放入数据
startActivity(nextActivity);
}
});
}
再来看子Activity代码:
private EditText m_tvOut;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.appl);
System.out.print("create appl activity\n");
m_tvOut = (EditText) findViewById(R.id.applText);
m_btnCloseButton = (Button) findViewById(R.id.btn);
m_btnCloseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
m_tvOut.setText(getIntent().getStringExtra("txt")); //获取数据,利用getInstent得到句柄,因为前面用的Instend传递的方式。
}
还有第二种方式,利用Bundle来传递复杂数据,例子代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m_bCreateActivityButtonBtn = (Button)findViewById(R.id.button1);
m_bCreateActivityButtonBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.print("onClick\n");
Intent nextActivity = new Intent(MainActivity.this, AppL.class);
//nextActivity.putExtra("txt", "main put");
Bundle data = new Bundle();
data.putString("middle", "Android code"); //创建一个Bundle数据对象
nextActivity.putExtras(data); //传递Bundle
startActivity(nextActivity);
}
});
}
子Activity代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.appl);
System.out.print("create appl activity\n");
m_tvOut = (EditText) findViewById(R.id.applText);
m_btnCloseButton = (Button) findViewById(R.id.btn);
m_btnCloseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
//m_tvOut.setText(getIntent().getStringExtra("txt"));
Bundle data = getIntent().getExtras(); //获取父Activity的Bundle
String txtString = data.getString("middle"); //通过Key关键字得到Value
m_tvOut.setText(txtString);
}