如果语句没有返回字符串

时间:2014-09-16 14:55:08

标签: android if-statement android-studio

你好我的android studio有小问题。

我制作了一个简单的代码,用于检查用户是否插入了带http://的字符串,如果没有,则将http://添加到字符串。

以下是我的代码的一部分:

    if (!host.contains("http://")) {
        String playlistUrl = "http://" + host + "/test.m3u";
    }else{
        String playlistUrl = host + "/test.m3u";
    }                
        intent.setData(Uri.parse(playlistUrl));

Android Studio在最后一行显示错误(无法解析符号playlistUrl

            intent.setData(Uri.parse(playlistUrl));

但为什么呢?如果语句应该返回字符串playlistUrl ....

4 个答案:

答案 0 :(得分:2)

您正在if ... else语句中创建变量 - 这意味着它在外部不可见。 您可以像这样实现它:

String playlistUrl;
if (...) {
     playlistUrl = ...;
}
else {
     playlistUrl = ...;
}

答案 1 :(得分:0)

在if-else构造之外声明playlistUrl:

String playlistUrl;
if (!host.contains("http://")) {
   playlistUrl = "http://" + host + "/test.m3u";
} else{
   playlistUrl = host + "/test.m3u";
}                
intent.setData(Uri.parse(playlistUrl));

答案 2 :(得分:0)

你需要这样做,不要通过重新声明它来使用相同的变量

String playlistUrl = "";
if (!host.contains("http://")) {
     "http://" + host + "/test.m3u";
}else{
    playlistUrl = host + "/test.m3u";
}                
    intent.setData(Uri.parse(playlistUrl));

答案 3 :(得分:0)

您必须在if语句之外声明并实例化var playListUrl。原因是编译器只转换为字节码而不评估表达式。