我可以通过新活动传递数据吗?

时间:2010-06-29 21:45:21

标签: android android-activity android-intent

在我的Android应用中,我使用startActivityForResult()开始了一项新活动。我完全得到onActivityResult()的结果。我的问题是,在开始活动之前,我知道有一小部分数据,我也需要在onActivityResult()中提供该值。我尝试将它附加到我的意图作为额外的,但它没有附加到活动返回结果时可用的意图。我通过将数据存储在全局变量中来实现它,但我真的不喜欢这种方法。有没有更好的,正确的方式来通过活动传递数据(而不仅仅是它)?

2 个答案:

答案 0 :(得分:1)

使用requestCode作为发送注释中建议的数据的方式看起来有点像黑客。这不是该代码的预期用途,通常以这种方式使用东西意味着你以后会遇到麻烦。

为什么不在您的班级中定义您的整数,并将其保存在那里? 伪代码:

class YourAcrivity extends Activity{
   private int yourInt;

   private function yourFunction(){
       //set your int
       yourInt = 11;
       //call your activity
       //startActivityForResult();
   }

  function onActivityResult(){
     //use yourInt
  }





}

答案 1 :(得分:0)

你可以使用setResult(int,Intent)将数据提供回onActivityResult(),传递你给出的相同意图(虽然它的一些属性,比如action或uri,将是无用的)。

您可以使用它来在两个活动之间建立数据,其中一个提供它所知道的信息,另一个提供其余的文件,并在调用时返回。