如何设置我的textview以显示我的json数组中的所有元素

时间:2014-03-05 07:42:48

标签: java android json

解析json并且我试图将textText设置为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]);
            }

2 个答案:

答案 0 :(得分:0)

你这里有一个无限循环;

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

答案 1 :(得分:0)

使用这个家伙:)你没有连接所有字符串只是用这个

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 finaltext="";
                for(int i=0;i>list.size();i++)
                {
                    finaltext.concat(list.get(i));
                }

                tv1.setText(finaltext.trim());