gpt4 book ai didi

php - 如何填充 ListView Android 中的所有列

转载 作者:搜寻专家 更新时间:2023-11-01 09:38:10 25 4
gpt4 key购买 nike

我正在通过 phpmysql 数据库 获取数据,我获取了两个值,但适配器只显示一个值。

这是我的 android getData() 函数,它正在获取一列,现在我想获取我没有获取的第二列

public void getdata(){
try {
URL url=new URL(retri_url);
try {
HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
IS=new BufferedInputStream(httpURLConnection.getInputStream());

} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}

try {
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(IS));

StringBuilder stringBuilder=new StringBuilder();
while((line=bufferedReader.readLine())!=null){
stringBuilder.append(line+"\n");
}
IS.close();
result=stringBuilder.toString();

} catch (IOException e) {
e.printStackTrace();
}
try{
JSONArray jsonArray=new JSONArray(result);
JSONObject jsonObject=null;
data=new String[jsonArray.length()];

for(int i=0;i<jsonArray.length();i++){

jsonObject=jsonArray.getJSONObject(i);

int id=Integer.parseInt(jsonObject.get("id").toString());
String strI = String.valueOf(id);
data[i] =strI;
data[i]=jsonObject.getString("Name");
}
} catch (JSONException e) {
e.printStackTrace();
}
}

最佳答案

问题是代码在 id 上使用单个数组 data 覆盖了 names 的数据

data[i] =strI;
data[i]=jsonObject.getString("Name");

我建议继续自定义适配器,但根据要求快速修复,这里是解决方案

1.) 创建三个数组

String[] names, data;
// ^^ to store names
// ^^ to store re-presentable data like "pavneet 2122"
int[] id ;
// ^^ to store ids

2.) 初始化数组

data=new String[jsonArray.length()];
names=new String[jsonArray.length()];
id=new int[jsonArray.length()];

3.) 使用 optIntoptString ,将为您处理解析

JSONArray jsonArray=new JSONArray(result);
JSONObject jsonObject=null;
data=new String[jsonArray.length()];
names=new String[jsonArray.length()];
id=new int[jsonArray.length()];

for(int i=0;i<jsonArray.length();i++){

jsonObject=jsonArray.getJSONObject(i);
id[i]=jsonObject.optInt("id");
name[i]=jsonObject.optString("Name");
data[i]=id[i]+"\t\t"+name[i];

注意:\t\t 用于制表符空间,因此您可以使用 \n 进行两行格式化

你可以使用这个data[i]=name[i]+"\t\t"+id[i];来显示名字和id
`

关于php - 如何填充 ListView Android 中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41534725/

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