首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在活动之间传递值

如何在活动之间传递值
EN

Stack Overflow用户
提问于 2012-01-17 19:23:25
回答 3查看 157关注 0票数 3

我创建了3个活动:firstActivitysecondActivitythirdActivity

  1. firstActivity是主要的活动。
  2. secondActivity只有在收到短信后才能工作,然后将消息发送给thirdActivity
  3. thirdActivity将字符串值转换为双值,然后将双值发送到firstActivity

我可以将值从secondActivity发送到thirdActivity,但我不知道如何将值​​从thirdActivity传递到firstActivity。请告诉我该怎么做。

EN

回答 3

Stack Overflow用户

发布于 2012-01-17 19:26:51

要做到这一点,有几种方法。

其中之一是使用自定义应用程序类为整个应用程序存储某种“全局值”。这样,您可以在firstActivity中设置值,并在thirdActivity中使用它们。

看看,所以问题来学习如何在安卓应用程序中存储全局状态。

票数 1
EN

Stack Overflow用户

发布于 2012-01-17 20:32:27

每当您有一个调用结果的活动时,就像本例中的thirdActivity一样,您可以始终使用startActivityForResult方法,而不是只使用startActivity。一旦thirdActivity完成了它的处理,并且它想返回结果值,它应该调用setResult,就这样。

这里这种方法的问题是,中间有一些secondActivity。真的有必要吗?

票数 1
EN

Stack Overflow用户

发布于 2012-01-20 16:02:25

谢谢你的帮助。现在我可以将值从thirdActivity传递给firstActivity,这就是我所做的。

ThirdActivity:

代码语言:javascript
复制
public class ThirdActivity extends Activity {

double value1, value2;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ...

    value1 = Double.parseDouble(value1FromSecondActivity);
    value2 = Double.parseDouble(value2FromSecondActivity);      

    Intent intent = new Intent(this, FirstActivity.class);
    intent.putExtra("Value1", value1);
    intent.putExtra("Value2", value2);
    startActivity(intent);
    finish();
    }
} 

FirstActivity:

代码语言:javascript
复制
public class FirstActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ...
}   

@Override
protected void onResume() {
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        dValue1 = extras.getDouble("Value1");
        dValue2 = extras.getDouble("Value2");
        Toast.makeText(getBaseContext(), dValue1 + " : " + dValue2, Toast.LENGTH_SHORT).show();
    }
    else {
        Toast.makeText(getBaseContext(), "Null", Toast.LENGTH_SHORT).show();
    }
    super.onResume();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8900445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档