startActivity ()에서 번들을 전달 하시겠습니까?


답변:


426

몇 가지 옵션이 있습니다.

1) 의도 에서 번들 을 사용하십시오 .

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) 새로운 번들 생성

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) 의도 의 putExtra () 단축키 메소드를 사용하십시오.

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);


그런 다음 시작된 활동에서 다음을 통해 읽을 수 있습니다.

String value = getIntent().getExtras().getString(key)

참고 : 번들에는 모든 기본 유형, Parcelable 및 Serializable에 대해 "get"및 "put"메소드가 있습니다. 방금 데모 목적으로 문자열을 사용했습니다.


20

인 텐트에서 번들을 사용할 수 있습니다.

Bundle extras = myIntent.getExtras();
extras.put*(info);

또는 전체 번들 :

myIntent.putExtras(myBundle);

찾고 계십니까?


1
그리고 결과 의도에서 getIntent (). getExtras (). get * ()를 호출하여 이전에 저장된 내용을 가져옵니다.
yanchenko 2016

16

안드로이드에서 하나의 활동에서 활동으로 데이터 전달

의도에는 작업 및 선택적으로 추가 데이터가 포함됩니다. 인 텐트 putExtra()방법을 사용하여 데이터를 다른 활동으로 전달할 수 있습니다 . 데이터는 엑스트라로 전달되며 key/value pairs입니다. 키는 항상 문자열입니다. 값으로 기본 데이터 유형 int, float, chars 등을 사용할 수 있습니다. 또한 Parceable and Serializable한 활동에서 다른 활동으로 오브젝트를 전달할 수도 있습니다 .

Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);

안드로이드 활동에서 번들 데이터 검색

getData()Intent 오브젝트의 메소드를 사용하여 정보를 검색 할 수 있습니다 . 인 텐트 오브젝트는 getIntent()메소드 를 통해 검색 할 수 있습니다 .

 Intent intent = getIntent();
  if (null != intent) { //Null Checking
    String StrData= intent.getStringExtra(KEY);
    int NoOfData = intent.getIntExtra(KEY, defaultValue);
    boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
    char charData = intent.getCharExtra(KEY, defaultValue); 
  }

6

번들을 사용하여 한 활동에서 다른 활동으로 값을 전달할 수 있습니다. 현재 활동에서 번들을 작성하고 특정 값에 대한 번들을 설정하고 해당 번들을 의도로 전달하십시오.

Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);

이제 NewActivity에서이 번들을 가져 와서 값을 검색 할 수 있습니다.

Bundle bundle = getArguments();
String value = bundle.getString(key);

의도를 통해 데이터를 전달할 수도 있습니다. 현재 활동에서 다음과 같이 의도를 설정하십시오.

Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);

이제 NewActivity에서 다음과 같은 의도로 그 가치를 얻을 수 있습니다.

String value = getIntent().getExtras().getString(key);

의도 객체에 getExtra 및 putExtra 메소드가있는 동안 번들을 사용하는 이유는 무엇입니까?
Psychosis404

0

이것이 당신이하고있는 활동이라고 쓰십시오 :

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);

NextActivity.java에서

Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));

이것은 나를 위해 작동합니다, 당신은 그것을 시도 할 수 있습니다.

출처 : https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-android-application/


0

첫 번째 활동 에서이 코드를 사용할 수 있습니다 .

 Intent i = new Intent(Context, your second activity.class);
        i.putExtra("key_value", "your object");
        startActivity(i);

두 번째 활동 에서 객체를 얻습니다 .

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.