gpt4 book ai didi

java - 将远程数据库中的 JSON 解析到 Android ListView

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:29 25 4
gpt4 key购买 nike

我已成功在我的网站上创建了一个 JSON 端点。这个 JSON 被输入到我的 android 项目中,进行解析并存储在 ListView 中。我遇到的问题是,不是打印列表中每个元素中的每个 JSON 对象,而是添加一个 JSON 对象 - 使列表中的每个元素更长。

列表示例:

数据1

数据1数据2

数据1 数据2 数据3

数据1数据2数据3数据4

我正在寻找:

数据1

数据2

数据3

我的代码如下,请有人指出我可能出错的地方吗?

public void setTextToTextView(JSONArray jsonArray){
String s = "";
CharSequence news_title = getResources().getText(R.string.news_title);
ArrayList<String> arrayList = new ArrayList<String>();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.simplerow,R.id.rowTextView, arrayList);
for (int i=0; i<jsonArray.length(); i++){
JSONObject jsonResponse;
try {
jsonResponse = jsonArray.getJSONObject(i);
s = s +
Html.fromHtml(news_title.toString())
+jsonResponse.getString("subject")+"\n"+
"Posted By :"+jsonResponse.getString("postedby")+"\n"+"\n";
arrayList.add(s);
} catch (JSONException e) {
e.printStackTrace();
}
}
Log.e("JSON Response:", arrayList.toString());
arrayAdapter.add(s);
this.newsResponseListView.setAdapter(arrayAdapter);
}

最佳答案

变量s在方法setTextToTextView()中是全局的,并且您在循环中使用它:

 s = s + Html.fromHtml(news_title.toString())
+jsonResponse.getString("subject")+"\n"+
"Posted By :"+jsonResponse.getString("postedby")+"\n"+"\n";

因此它将前一个数据附加到下一个数据。

我应该改变什么?

只需删除 String s (第一个声明)并将其写入循环内:

     String s =Html.fromHtml(news_title.toString())
+jsonResponse.getString("subject")+"\n"+
"Posted By :"+jsonResponse.getString("postedby")+"\n"+"\n";
arrayList.add(s);

关于java - 将远程数据库中的 JSON 解析到 Android ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34119781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com