X と y という 2 つのアクティビティがあります。x には edittext n 6 ラジオボタンがあります。ユーザーがボタンをクリックすると、値は edittext n ラジオボタンからの入力に基づいてデータベースから取得されます。値は次のアクティビティ y に表示されます。スニペットを提供するのを手伝ってもらえますか..事前に感謝します
3 に答える
値をバンドルに入れ、そのバンドルを次のアクティビティを開始するインテントに渡す必要があります。サンプル コードは、次の質問に対する回答にあります: startActivity() でバンドルを渡しますか?
Bundle または Intent を使用して、あるアクティビティから別のアクティビティにデータを簡単に渡すことができます。
Bundle を使用した次の例を見てみましょう。
//creating an intent to call the next activity
Intent i = new Intent("com.example.NextActivity");
Bundle b = new Bundle();
//This is where we put the data, you can basically pass any
//type of data, whether its string, int, array, object
//In this example we put a string
//The param would be a Key and Value, Key would be "Name"
//value would be "John"
b.putString("Name", "John");
//we put the bundle to the Intent
i.putExtra(b);
startActivity(i, 0);
「NextActivity」では、次のコードを使用してデータを取得できます。
Bundle b = getIntent().getExtra();
//you retrieve the data using the Key, which is "Name" in our case
String data = b.getString("Name");
Intent のみを使用してデータを転送するのはどうですか。例を見てみましょう
Intent i = new Intent("com.example.NextActivity");
int highestScore = 405;
i.putExtra("score", highestScore);
「NextActivity」では、データを取得できます。
int highestScore = getIntent().getIntExtra("score");
Intent と Bundle の違いは何ですか、まったく同じことをしているように見えます。
答えはイエスです。どちらもまったく同じことをします。ただし、大量のデータ、変数、大きな配列を転送する場合は、バンドルを使用する必要があります。大量のデータを転送するためのメソッドが他にもあるためです (つまり、1 つまたは 2 つの変数のみを渡す場合は、Intent.
送信したいデータを呼び出しているインテントにバインドして、次のアクティビティに進みます。
Intent i = new Intent(this, YourNextClass.class);
i.putExtra("yourKey", "yourKeyValue");
startActivity(i);
YourNextClass アクティビティでは、渡されたデータを次のように使用して取得できます。
Bundle extras = getIntent().getExtras();
if (extras != null) {
String data = extras.getString("yourKey");
}