AndroidにおけるBundle転送データとオブジェクト(activity転送)

3035 ワード

1.Bundleはデータを転送します.Bundleには単純なデータ型がカプセル化されているので、直接データを設定します.次に、具体的な操作を見てみましょう.
  case R.id.Btn_Msg:
                //      Bundle  
                Bundle bundle = new Bundle();
                Intent intent=new Intent(MainActivity.this,Main2Activity.class);
                //    
                String name="admin";String num="123";
                //      Bundle   
                bundle.putString("name", name);
                bundle.putString("num",num);
                // bundle  intent   
                intent.putExtra("Message",bundle);
                startActivity(intent);
                break;

Bundleにデータを配置し、intentを使用して転送します.次に、Bundleから転送されたデータをどのように取得するかを見てみましょう.
 //      
        Intent intent = getIntent();
        // intent  bundle  
        Bundle bundle = intent.getBundleExtra("Message");
        //      
        String name = bundle.getString("name");
        String num = bundle.getString("num");
        //      
        text_show.setText(name + "
" + num);

2,Bundleはオブジェクトを伝達して、もし私達が1つの複雑なデータ型を伝達したいならばBundleの中の方法Serizlizableを使いますここで私達はデータをSerizlizableオブジェクトに回転して、それから相応の操作を行います
このようなオブジェクト:
public class Persion implements Serializable {
    private String name;
    private String num;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }
}

具体的な操作は以下の通りですが、こちらではデータ設定を書き殺し、オブジェクトの転送を開始します
  case R.id.Btn_Obj:
                Persion persion=new Persion();
                //    
                String Name="zhangsan";String Num="111111";
                persion.setName(Name);
                persion.setNum(Num);
                //      Bundle  
                Bundle bundle1 = new Bundle();
                //  Persion     bundle   
                bundle1.putSerializable("persion",persion);
                Intent intent1=new Intent(MainActivity.this,Main2Activity.class);
                intent1.putExtras(bundle1);
                startActivity(intent1);
                break;

同じように、私もBundleにオブジェクトを配置し、Intentを使用して転送します.次に、Bundle転送のオブジェクトをどのように取得するかを見てみましょう.
 Intent intent=getIntent();
        //      Bundle  
        Bundle bundle=intent.getExtras();
        //     Persion       
        Persion persion= (Persion) bundle.getSerializable("persion");
        text_show.setText("  :"+persion.getName()+"
"+" :"+persion.getNum());
  •  

  • まとめて、Bundleを使用してオブジェクトを渡す場合、PersionクラスにSerializableインタフェースを実装させ、putSerializable(String key,Serializble value)でデータを格納し、データを受信するときにSerializanle getSerizlizble(String key)でデータを取り出すのは簡単です!ただ一歩一歩解決する必要があり、、、、人間としてコードを書くのと同じように、一歩一歩着実にやる必要があり、一歩も天に登ることはありません.