Android Intent getExtras

时间:2011-06-21 11:56:02

标签: android android-layout android-widget android-intent

我在两个活动之间传递值并获取这样的值:

Bundle extras = getIntent().getExtras();
    if (extras != null)

    {
        initialUrl = extras.getString("initialUrl");
        isFollow = extras.getString("isFollow");
    }


    if (isFollow == "true") {
        editUrl.setText(initialUrl);
        setUpWebView(initialUrl);
    } else if (isFollow == "false") {
        editUrl.setText("http://www.google.com");
        setUpWebView("http://www.google.com");
    }

问题是我可以通过向变量添加watch来查看调试窗口中检索的值,但是当编译器输入语句if(isFollow ==“true”)时,条件失败。其他情况也没有处理。我还需要做些什么来确保我的if条件得到正确满足?

4 个答案:

答案 0 :(得分:2)

你应该使用

isFollow.equals("true")

在你的陈述中。

答案 1 :(得分:1)

如果String类型的数据放在bundle中,请尝试使用以下代码

String isFollow = null;    
Bundle extras = getIntent().getExtras();
    if (extras != null)

    {
        initialUrl = extras.getString("initialUrl");
        isFollow = extras.getString("isFollow");
    }
if (isFollow.equals("true")) {
        editUrl.setText(initialUrl);
        setUpWebView(initialUrl);
    } else if (isFollow.equals("false")) {
        editUrl.setText("http://www.google.com");
        setUpWebView("http://www.google.com");
    }

如果将布尔类型的数据放入捆绑包中,请尝试使用以下代码

 boolean isFollow = null;    
    Bundle extras = getIntent().getExtras();
        if (extras != null)

        {
            initialUrl = extras.getString("initialUrl");
            isFollow = extras.getBoolean("isFollow");
        }
    if (isFollow) {
            editUrl.setText(initialUrl);
            setUpWebView(initialUrl);
        } else {
            editUrl.setText("http://www.google.com");
            setUpWebView("http://www.google.com");
        }

答案 2 :(得分:0)

你需要测试 isFollow.equals("true")或者它是一个布尔值而不是一个字符串 isFollow == true或仅isFollow

(注意第二个没有引号)

答案 3 :(得分:0)

我知道这是一个非常晚的答案,但如果你将布尔值传递给发件人的意图,最好这样做:

Boolean isFollow = extras.getBoolean("isFollow");

if(isFollow) { 
  //Do stuff
}