zoukankan      html  css  js  c++  java
  • Activity之Bundle的使用

    Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的。

    我们经常使用Bundle在Activity之间传递数据,传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。

    当Bundle传递的是对象或对象数组时,必须实现Serializable 或Parcelable接口。下面分别介绍Activity之间如何传递基本类型、传递对象。

    1.Bundle的方法的数据类型:

    Bundle提供了各种常用类型的putXxx()/getXxx()方法,用于读写基本类型的数据。

    Bundle操作基本数据类型的API表格如下所示:

    2.添加数据的代码:

    btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String sate1=((EditText)findViewById(R.id.site1)).getText().toString();
                    String sate2=((EditText)findViewById(R.id.site2)).getText().toString();
                    String sate3=((EditText)findViewById(R.id.site3)).getText().toString();
                    String phone=((EditText)findViewById(R.id.phone)).getText().toString();
                    String name=((EditText)findViewById(R.id.name)).getText().toString();
    
                    if(!"".equals(sate1)&&!"".equals(sate2)&&!"".equals(sate3)&&!"".equals(phone)&&!"".equals(name)){
                        Intent intent=new Intent(MainActivity.this,AddressActivity.class);
                        Bundle bundle=new Bundle();
                        bundle.putString("name",name);
                        bundle.putString("phone",phone);
                        bundle.putString("sate",sate1+sate2+sate3);
                        intent.putExtra("bundle",bundle);
                        startActivity(intent);
                    }else{
                        Toast.makeText(MainActivity.this,"请将信息填写完整",Toast.LENGTH_SHORT).show();
                    }
                }
            });

    3.在.java文件中传输数据到xml文件中:

    public class Activity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity);
    
            Intent intent=getIntent();
            Bundle bundle=intent.getBundleExtra("bundle");
    
            TextView age=(TextView) findViewById(R.id.age);
            TextView name=(TextView)findViewById(R.id.name);
            TextView sex=(TextView)findViewById(R.id.sex);
    
            age.setText(bundle.getString("age"));
            sex.setText(bundle.getString("sex"));
            name.setText(bundle.getString("name"));
    
            ImageView down=(ImageView) findViewById(R.id.down);
            close.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
        }
    }

    publicclass AddressActivity extends AppCompatActivity { @Override protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_address); Intent intent=getIntent(); Bundle bundle=intent.getBundleExtra("bundle"); TextView site=(TextView) findViewById(R.id.site); TextView name=(TextView)findViewById(R.id.name); TextView phone=(TextView)findViewById(R.id.phone); site.setText(bundle.getString("sate")); phone.setText(bundle.getString("phone")); name.setText(bundle.getString("name")); ImageView close=(ImageView) findViewById(R.id.close); close.setOnClickListener(new View.OnClickListener() { @Override publicvoid onClick(View v) { finish(); } }); } }

  • 相关阅读:
    while语句的使用
    Sql Server2008忘记sa登陆密码
    C# 读取Excel到DataTable两种方式对比
    读《太阳照常升起》-海明威
    年终总结-2019 混沌收获
    如何在调试状态下部署局域网网站
    HTML-文本标签
    HTML-表单
    HTML-入门
    正则表达式大全
  • 原文地址:https://www.cnblogs.com/studya/p/13061223.html
Copyright © 2011-2022 走看看