1

データを取得して処理するアクティビティがあり、親アクティビティからいくつかの変数 (複雑なデータ構造) にアクセスできる新しいアクティビティを開始したいと考えています。

ここではシリアル化を使用できません。アクティビティ間で変数を渡す簡単な方法はありますか? または、親アクティビティの関数の 1 つにアクセスして、必要な変数を取得しますか?

4

3 に答える 3

2

アクティビティ間で変数を渡す簡単な方法はありますか?

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");
}
于 2013-03-03T09:42:19.143 に答える
0

これにはバンドルクラスを利用できます。

最初のアクティビティ(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”); 
于 2013-03-03T10:51:20.603 に答える
0

ブロードキャスト レシーバーを使用して、アクティビティ間でデータを渡したり、メイン アクティビティでシングルトンを作成したり、静的ゲッター / セッターを使用して変数を取得したりできます。

それでも、シリアル化できない変数を渡したい場合は、設計に問題があると思います。

于 2013-03-03T09:38:23.993 に答える