我的代码出了点问题。
我想在for循环中获取两个值,但只显示一个。
这是我的代码
public class ReturnValue
{
public String item;
public String item_intro;
}
public ArrayList<ReturnValue> populate() {
ArrayList<ReturnValue> returnValues = new ArrayList<ReturnValue>();
while {
ReturnValue rv = new ReturnValue();
try {
URL url = new URL
("http://www.wvvzondag2.nl/android/fillverslag.php");
HttpURLConnection urlConnection =
(HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.connect();
// gets the server json data
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(
urlConnection.getInputStream()));
String next;
//While loop to go through the query until reached the end
while ((next = bufferedReader.readLine()) != null){
JSONArray ja = new JSONArray(next);
for (int i = 0; i < ja.length(); i++) {
String var = "";
String var_intro = "";
JSONObject jo = (JSONObject) ja.get(i);
var = jo.getString("title");
var_intro = jo.getString("introtext");
items_intro.add(var_intro);
items.add(var);
}
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rv.item = var;
rv.item_intro = var_intro;
returnValues.add(rv);
}
return returnValues;
}
经过tom的一些修改后,代码的主要部分看起来像这样。
但我仍然有一些错误
令牌“while”上的语法错误,删除此令牌
items_intro无法解析
项目无法解决
不知道如何解决这个问题......
亲切的问候, 帕特里克
答案 0 :(得分:1)
您只能返回一个对象。一种选择是创建一个包含列表的“Wrapper对象”,并返回该列表。
public class ReturnValue
{
public String item;
public String item_intro;
}
然后在你的填充方法中:
public ArrayList<ReturnValue> populate() {
ArrayList<ReturnValue> returnValues = new ArrayList<ReturnValue>();
while {
ReturnValue rv = new ReturnValue();
//...
//other code
//...
rv.item = var;
rv.item_intro = var;
returnValues.add(rv);
}
return returnValues;
}
答案 1 :(得分:0)
您无法返回两个值。返回不会那样。返回结束方法并返回一(1)值。对于您正在做的事情,请考虑返回列表的数组(或列表)或使用Bundle。
答案 2 :(得分:0)
你可以 创建另一个包含对象项和items_into的ArrayList,然后返回这个2元素的ArrayList。您假设items是第一个元素,items_into是第二个元素
答案 3 :(得分:0)
方法只能返回一个值。然而,您可以创建两种不同的方法,一种返回一种类型,另一种返回另一种类型。这样您就可以检索这两个值。