在我的Android应用中,我使用startActivityForResult()
开始了一项新活动。我完全得到onActivityResult()
的结果。我的问题是,在开始活动之前,我知道有一小部分数据,我也需要在onActivityResult()
中提供该值。我尝试将它附加到我的意图作为额外的,但它没有附加到活动返回结果时可用的意图。我通过将数据存储在全局变量中来实现它,但我真的不喜欢这种方法。有没有更好的,正确的方式来通过活动传递数据(而不仅仅是它)?
答案 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,将是无用的)。
您可以使用它来在两个活动之间建立数据,其中一个提供它所知道的信息,另一个提供其余的文件,并在调用时返回。