4

我需要将活动 A 中的 EditText 的数据发送到活动 B。我尝试过:

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

但它不起作用,因为活动 Bandroid:launchMode="singleTask"之前已经创建并且已经创建。

不然怎么发数据?

4

3 回答 3

11

onNewIntent()您在该方法中覆盖Activity B并接收该intent方法。

就像下面的代码:

@Override
protected void onNewIntent(Intent i)
{
  String s = i.getStringExtra("fromA");
}

在上面的代码中,您将获得sfrom 的值Activity A

于 2012-12-27T08:18:56.283 回答
1

你可以通过 iPhone 的方式做到这一点。创建一个类,您可以在开始新活动之前设置数据并从新活动访问相同的数据。

这将按如下方式工作

  1. 有两个活动FirstActivitySecondActivity
  2. 要发送的数据是名字和姓氏

所以会有一类你将有数据变量

 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;
 }

获取后,您可以从传输器类(如果需要)中删除数据。

于 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 回答