Android_Bundle

3734 단어

1 Bundle 소개


Bundle은 주로 데이터 전달에 사용된다.그것이 저장한 데이터는 키-value (키 값 쌍) 의 형식으로 존재합니다.
우리는 자주 Bundle을 사용하여Activity 사이에서 데이터를 전달한다. 전달된 데이터는boolean,byte,int,long,float,double,string 등 기본 유형이나 이에 대응하는 수조일 수도 있고 대상이나 대상 수조일 수도 있다.Bundle이 객체 또는 객체 배열을 전달하는 경우 Serializable 또는 Parcelable 인터페이스를 사용해야 합니다.다음은 Activity 간에 기본 유형, 전달 대상을 어떻게 전달하는지 소개한다.

2 전송 기본 유형


Bundle는 기본 형식의 데이터를 읽기 위한 다양한 종류의putXxx ()/getXxx () 방법을 제공합니다.
  • activity 간에 정보를 전달하다

    1 Bundle bundle = new Bundle();        // bundle   
    2 bundle.putString("sff", "value ");  //key-"sff", key value-"value "(String )  
    3 bundle.putInt("iff", 175);           //key-"iff",value-175  
    4 intent.putExtras(bundle);            // intent bundle Activity  
    5 startActivity(intent);

    데이터 읽기
    1 Bundle bundle = this.getIntent().getExtras(); // intent bundle      
    2 String str1 = bundle.getString("sff"); // key value     
    3 int int1 = bundle.getInt("iff"); 

     

  • 4
  • 스레드 간 전달(Handler를 통해dundle 데이터가 있는 메시지를 메시지 대기열에 넣으면 다른 스레드는 대기열에서 데이터를 얻을 수 있음)
    1 Message message=new Message();//new Message      
    2 message.what = MESSAGE_WHAT_2;//   
    3 Bundle bundle = new Bundle(); // Bundle     
    4 bundle.putString("text1"," !");  // Bundle     
    5 bundle.putInt("text2",44);  // Bundle put     
    6 message.setData(bundle);//mes Bundle   
    7 mHandler.sendMessage(message);//Handler 

    데이터 읽기(Handler의handle Message(Message msg) 방법으로 데이터 처리)
    1 String str1=msg.getData().getString("text1");  
    2 int int1=msg.getData().getString("text2");

     

  • PS: Bundle 및 Intent 차이점:
    Bundle은 정보의 매개체일 뿐 내부는 사실 맵을 유지하고 있다.
    Intent는 Activity 간의 상호 작용을 담당하며 내부에는 Bundle이 있습니다.

    좋은 웹페이지 즐겨찾기