データを取得して処理するアクティビティがあり、親アクティビティからいくつかの変数 (複雑なデータ構造) にアクセスできる新しいアクティビティを開始したいと考えています。
ここではシリアル化を使用できません。アクティビティ間で変数を渡す簡単な方法はありますか? または、親アクティビティの関数の 1 つにアクセスして、必要な変数を取得しますか?
データを取得して処理するアクティビティがあり、親アクティビティからいくつかの変数 (複雑なデータ構造) にアクセスできる新しいアクティビティを開始したいと考えています。
ここではシリアル化を使用できません。アクティビティ間で変数を渡す簡単な方法はありますか? または、親アクティビティの関数の 1 つにアクセスして、必要な変数を取得しますか?
アクティビティ間で変数を渡す簡単な方法はありますか?
Intent intent = new Intent(context,SecondActivity.class);
intent.putExtra("isLogin", "yes");
startActivity(intent);
SecondActivity で値を取得します。
Bundle extras = getIntent().getExtras();
if(extras !=null) {
String value = extras.getString("isLogin");
}
これにはバンドルクラスを利用できます。
最初のアクティビティ(firstactivity.java):
//Create the intent
Intent i = new Intent(firstactivity.this, secondactivity.class);
EditText txtUserName = (EditText) findViewById(R.id.username);
String UserName=txtUserName.getText().toString();
//Create the bundle
Bundle bundle = new Bundle();
//Add your data to bundle
bundle.putString(“UserName”, UserName);
//Add the bundle to the intent
i.putExtras(bundle);
//Fire that second activity
startActivity(i);
2番目のアクティビティ(secondactivity.java):
//Get the bundle
Bundle objBundle = getIntent().getExtras();
//Extract the data
String UserName= objBundle.getString(“UserName”);
ブロードキャスト レシーバーを使用して、アクティビティ間でデータを渡したり、メイン アクティビティでシングルトンを作成したり、静的ゲッター / セッターを使用して変数を取得したりできます。
それでも、シリアル化できない変数を渡したい場合は、設計に問題があると思います。