这是我正在做的事情: 1.从服务器获取数组 2.使用Asynctask,我在onPostExecute方法中捕获字符串 3.迭代数组列表并根据数组的字符串值创建列表。
但我收到此错误"变量'结果'已在此范围内定义",我尝试通过网络搜索。但徒劳无功。我不明白这个问题。
以下是代码:
UIViewController
提前致谢
答案 0 :(得分:0)
你已经定义了String []结果。改变
List<String> result[i] = new ArrayList<String>();
到另一个变量
答案 1 :(得分:0)
您收到错误的原因是:
你的论点中有String[] result
。然后尝试定义List<String> result
。所以编译器抱怨你有两个同名的变量。
答案 2 :(得分:0)
这里有两件事:
onPostExecute()函数上已有结果变量。尝试重命名其他结果变量。
您无法使用[]运算符来实现您的目标。
您想要存储的内容:字符串列表或(ArrayList)列表?
答案 3 :(得分:0)
试试这样:
@Override
protected void onPostExecute(String[] result) {
super.onPostExecute(result);
int count = result.length;
List<String> list = new ArrayList<String>();
for (int i = 0; i < count; i++) {
list.add(result[i]);
}
}
答案 4 :(得分:0)
尽管有一个名为List<String> result
的参数,您仍尝试创建result
变量,因此您需要重命名它。您还需要在循环外部初始化列表以执行您想要的操作,例如:
List<String> resultList = new ArrayList<String>();
for(int i=0; i<result.length; i++){
resultList.add(result[i]);
}
修改强>
如果要创建多个列表,则需要定义类型为List<String>
的集合,例如:
List<List<String>> resultList = new ArrayList<List<String>>();
for(int i=0; i<result.length; i++){
resultList.add(new ArrayList<String>());
}
答案 5 :(得分:0)
您可以使用此
直接将String Array转换为ArrayList List<String> list = new ArrayList<String>(Arrays.asList(yourStringArray))
感谢。希望它会有所帮助。