解析json,我试图setText一个textview做我的数组中的所有元素。显然我在这里做错了,希望能对您有所帮助。

        TextView tv1 = (TextView) findViewById(R.id.textView1);
        TextView tv2 = (TextView) findViewById(R.id.textView2);
        try {
            String buildings = getJSON("http://iam.colum.edu/portfolio/api/course?json=True");

            //JSONObject jsonObject = new JSONObject(buildings);
            JSONArray queryArray = new JSONArray(buildings);
            //queryArray = queryArray.getJSONArray(0);
            List<String> list = new ArrayList<String>();
            for (int i=0; i<queryArray.length(); i++) {
                list.add( queryArray.getString(i) );

            }
            String text = list.get(0).toString();
            String arr[] = text.split(" ");
            arr[0] = arr[0].trim();
            for(int i=0;i>queryArray.length();++i)
            {
                tv1.setText(list[i]);
            }

最佳答案

你在这里有一个无限循环;

for(int i=0;i>queryArray.length();++i)
{
    tv1.setText(list[i]);
}


此外,每次运行循环时,以上代码段都会在textview的列表中显示一行。它不会在textview上追加文本。尝试对代码进行一些优化,以使您可以在一个循环中完成任务。

StringBuilder sb = new StringBuilder();
for (int i=0; i<queryArray.length(); i++) {
    // chain each string, separated with a new line
    sb.append(queryArray.getString(i) + "\n");
}
// display the content on textview
tv1.setText(sb.toString());


参考:StringBuilder - Android documentation

关于java - 如何设置我的textview以显示我的json数组中的所有元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22191554/

10-11 22:28
查看更多