我需要将活动 A 中的 EditText 的数据发送到活动 B。我尝试过:
Intent intent1=new Intent(A.this,B.class);
intent1.putExtra("fromA", "text");
startActivity(intent1);
但它不起作用,因为活动 Bandroid:launchMode="singleTask"
之前已经创建并且已经创建。
不然怎么发数据?
我需要将活动 A 中的 EditText 的数据发送到活动 B。我尝试过:
Intent intent1=new Intent(A.this,B.class);
intent1.putExtra("fromA", "text");
startActivity(intent1);
但它不起作用,因为活动 Bandroid:launchMode="singleTask"
之前已经创建并且已经创建。
不然怎么发数据?
onNewIntent()
您在该方法中覆盖Activity B
并接收该intent
方法。
就像下面的代码:
@Override
protected void onNewIntent(Intent i)
{
String s = i.getStringExtra("fromA");
}
在上面的代码中,您将获得s
from 的值Activity A
。
你可以通过 iPhone 的方式做到这一点。创建一个类,您可以在开始新活动之前设置数据并从新活动访问相同的数据。
这将按如下方式工作
所以会有一类你将有数据变量
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 !
希望这可以帮助 !