バンドルをstartActivity()で渡しますか?


回答:


425

いくつかのオプションがあります。

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 2009

16

Androidで1つのアクティビティからアクティビティにデータを渡す

インテントには、アクションとオプションの追加データが含まれます。データは、インテントputExtra()メソッドを使用して他のアクティビティに渡すことができます。データはエクストラとして渡されますkey/value pairs。キーは常に文字列です。値として、プリミティブデータ型int、float、charsなどを使用できParceable and Serializableます。1つのアクティビティから別のアクティビティにオブジェクトを渡すこともできます。

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

Androidアクティビティからのバンドルデータの取得

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);

2番目のアクティビティでオブジェクトを取得します。

 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.