bundle可以理解为是一个打包的类,可以装各种类型的数据,字符串 int数据类型 ,Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值。相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法,如:putString()/getString()和putInt()/getInt(),putXxx()用于往Bundle对象放入数据,getXxx()方法用于从Bundle对象里获取数据。(转载自360.doc)
代码如下
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) this.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//只要用到跳转intent不能少
Intent i = new Intent(MainActivity.this, Second.class);
//创建一个bundle对象
Bundle b = new Bundle();
//传值
b.putString("data", "字符串");
b.putInt("data2", 10);
i.putExtras(b);//打包到extra
startActivity(i);//与intent相对应
}
});
}
这是另一个activity的代码import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class Second extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
TextView tv=(TextView)this.findViewById(R.id.tv);
//意思就是将该项目中包含的原始intent检索出来
Intent i=getIntent();
//将检索出来的intent中继续检索出里面的Extras
Bundle data=i.getExtras();
/* 将检索出来的之释放(暂时这么理解吧)注意:format()函数是用来设定格式的函数,用以指定返回值的格式,但要配合各种不同的参数
* 同时如果你找的键值没有值对应 可以在这里定义
*/
tv.setText(String.format("data=%s,data2=%d,name=%s", data.getString("data"),data.getInt("data2"),data.getString("name","空参数")));
}
}
layout中的代码省略,只知道一个xml中有一个按钮 另一个有一个文本 他们各自都有id就可以了