需求: 在 第一个activity:model1 中 的两个EditText 中写入字符串, 然后传给第二个activity: choosefrom2 供其进行随机选择.
activity 之间的数据传递是一种简单又要经常使用的实现. 以需求为例, 在 model1 中 以按钮事件触发, 取得Edittext 中的内容, 然后通过Bundle的封装传给
choosefrom2.
mybutton.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg)
{
text1=myedittext1.getText().toString();
text2=myedittext2.getText().toString();
Intent intent =new Intent();
intent.setClass(model1.this, choosefrom2.class);
Bundle bundle = new Bundle();
bundle.putString("text1", text1);
bundle.putString("text2", text2);
intent.putExtras(bundle);
startActivity(intent);
}
});
在 choosefrom2 中,同样通过Bundle 对象来接收数据:
截取关键代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.choosefrom2);
Bundle bunde=this.getIntent().getExtras();
text1 = bunde.getString("text1");
text2 = bunde.getString("text2");
注意提取数据时类型要与传入数据时类型一样. Bundle对象针对不同的数据类型提供了许多的方法.