Android开发:Bundle传值 |
您所在的位置:网站首页 › bundle安卓 › Android开发:Bundle传值 |
Android开发:Bundle传值。之前使用的是Intent传值,新学了一个Bundle传值的方法 文章目录 一、Bundle是什么?二、Bundle与Intent区别三、Bundle使用代码示例效果显示 一、Bundle是什么?Android Developers 文档【Bundle】 public final class Bundle extends BaseBundle implements Cloneable, ParcelableA mapping from String keys to various Parcelable values. 翻译:从 String 键到各种 Parcelable 值的映射。 Bundle类是一个final类,是一个存储和管理key-value对的类,主要用于存储并传递数据。 二、Bundle与Intent区别Android Developers 文档【Intent】 An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity. 翻译:Intent 是对要执行的操作的抽象描述。 它可以与 startActivity 一起使用来启动一个 Activity Bundle与Intent都可以用来传值,Bundle可以对对象进行操作,而Intent是不可以。Bundle相对于Intent拥有更多的接口,用起来比较灵活,但是使用Bundle也还是需要借助Intent才可以完成数据传递总之,Bundle旨在存储数据,而Intent旨在传值。 三、Bundle使用Main1.java 代码中的这句: Intent intent = new Intent().setClassName("com.pkg.myadapter", "com.pkg.myadapter.Main2");com.pkg.myadapter为收数据页面的包名,com.pkg.myadapter.Main2为收数据页面的类名。就是页面跳转,可替换成: Intent intent = new Intent(Main1.this,Main2.class); 代码示例发数据: Main1.java public class Main1 extends AppCompatActivity { private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main1); //添加按键跳转到第二个页面Main2.java button1=findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent().setClassName("com.pkg.myadapter", "com.pkg.myadapter.Main2"); Bundle bundle = new Bundle(); bundle.putString("name", "zhangsan"); bundle.putInt("age", 18); intent.putExtras(bundle); startActivity(intent); finish(); } }); }收数据:Main2.java public class Main2 extends AppCompatActivity { private Button button3; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Intent intent1=getIntent(); // 实例化Bundle Bundle bundle=intent1.getExtras(); String name=bundle.getString("name"); int age=bundle.getInt("age"); TextView dataTextView = (TextView) findViewById(R.id.textView2); //文本控件接收数据 dataTextView.setText("姓名:"+name+"年龄:"+age); button3=findViewById(R.id.button3); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent2 = new Intent(Main2.this,Main1.class); //重新跳回Main1 startActivity(intent1); //激活活动显示接收的数据 startActivity(intent2); //重新跳回Main1 finish(); //结束当前Activity } }); } }activity_main1.xml activity_main2.xml 效果显示 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |