4

アクティビティ A の EditText からアクティビティ B にデータを送信する必要があります。

Intent intent1=new Intent(A.this,B.class);
intent1.putExtra("fromA", "text");
startActivity(intent1); 

android:launchMode="singleTask"しかし、アクティビティ B があり、以前に作成されたため、機能しません。

他にどのようにデータを送信できますか?

4

3 に答える 3

1

iPhoneの方法でこれを行うことができます。新しいアクティビティを開始する前にデータを設定し、新しいアクティビティから同じデータにアクセスできるクラスを作成します。

これは次のように機能します

  1. FirstActivitySecondActivityの 2 つのアクティビティがあります。
  2. 送信するデータは姓と名

そのため、データの変数を持つクラスが 1 つあります。

 public class DataTransporter{
      public static String firstName;
      public static String lastName;
 }

最初のアクティビティでは、コードは次のようになります

 DataTransporter.firstName = "abc";
 DataTransporter.lastName = "xyz"; 
 Intent intent = new Intent(FirstActivity.this,SecondActivity.class)
 startActivity(intent)

2 番目のアクティビティでは、このデータを取得できます

 @Override
 protected void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   String first = DataTransporter.firstName;
   String last = DataTransporter.lastName;
 }

フェッチされたデータは、必要に応じてトランスポーター クラスから削除できます。

于 2012-12-27T08:26:49.127 に答える
0

私は SharedPreferences を使用してデータを保存し、クラス全体で使用することを好みます。さらに、データはデバイスに保存されるため、アプリが強制終了された後でも使用できます...これはあなたの例です!

//Some String that I should remember, I am just using the package name for now
String app = this.getPackageName();/*This is going to be used more like a file to save my stuff to*/
//Setting our sharedpreferences
SharedPreferences sha = sha = getApplicationContext().getSharedPreferences(app, SherlockActivity.MODE_PRIVATE);


String myString = "This is the String that you want to save so you can use among your classes"

//Now we call in an editor for that SharedPreferences so we can write and delete stuff from it .

Editor edit = sha.edit();

//Now we insert our String.
edit.putString("Something_you_can_remember" , myString);//You will need the "Something_you_can_remember" a few lines ahead , so remember it !
edit.apply(); //Or we can use edit.commit() , but I prefer apply()

//Now our String is saved ! So lets read it !

String whatever = sha.getString("Something_you_can_remember" , "The String incase myString didn't even exist , saves you from a NullPointerException");

//Here we go ! Now we have our String saved and can be readable among the classes !

また、その文字列またはそこに「入れた」ものを削除したい場合は、呼び出すことができます

edit.remove("Something_you_can_remember"); //or edit.clear() to remove all the values stored !

お役に立てれば !

于 2012-12-27T09:13:18.140 に答える