我需要将 A 活动中 EditText 中的数据发送到 B 活动。我尝试了以下方法:
Intent intent1=new Intent(A.this,B.class);
intent1.putExtra("fromA", "text");
startActivity(intent1);
但它不起作用,因为活动B具有android:launchMode="singleTask"
并且在先被创建。
还有别的方法可以发送数据吗?
我需要将 A 活动中 EditText 中的数据发送到 B 活动。我尝试了以下方法:
Intent intent1=new Intent(A.this,B.class);
intent1.putExtra("fromA", "text");
startActivity(intent1);
但它不起作用,因为活动B具有android:launchMode="singleTask"
并且在先被创建。
还有别的方法可以发送数据吗?
您可以在Activity B
中覆盖onNewIntent()
方法,并在该方法中接收intent
。
示例代码如下:
@Override
protected void onNewIntent(Intent i)
{
String s = i.getStringExtra("fromA");
}
Activity A
获取值并将其赋给s
变量。 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)
@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 !