アクティビティ A の EditText からアクティビティ B にデータを送信する必要があります。
Intent intent1=new Intent(A.this,B.class);
intent1.putExtra("fromA", "text");
startActivity(intent1);
android:launchMode="singleTask"
しかし、アクティビティ B があり、以前に作成されたため、機能しません。
他にどのようにデータを送信できますか?
アクティビティ A の EditText からアクティビティ B にデータを送信する必要があります。
Intent intent1=new Intent(A.this,B.class);
intent1.putExtra("fromA", "text");
startActivity(intent1);
android:launchMode="singleTask"
しかし、アクティビティ B があり、以前に作成されたため、機能しません。
他にどのようにデータを送信できますか?
iPhoneの方法でこれを行うことができます。新しいアクティビティを開始する前にデータを設定し、新しいアクティビティから同じデータにアクセスできるクラスを作成します。
これは次のように機能します
そのため、データの変数を持つクラスが 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;
}
フェッチされたデータは、必要に応じてトランスポーター クラスから削除できます。
私は 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 !
お役に立てれば !