你好我的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 ....
答案 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。原因是编译器只转换为字节码而不评估表达式。