Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何设置我的textview以显示json数组中的所有元素_Java_Android_Json - Fatal编程技术网

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

Java 如何设置我的textview以显示json数组中的所有元素,java,android,json,Java,Android,Json,正在解析json,我正在尝试设置一个textview来执行数组中的所有元素。很明显,我在这里做错了什么,如果有任何帮助,我将不胜感激 TextView tv1 = (TextView) findViewById(R.id.textView1); TextView tv2 = (TextView) findViewById(R.id.textView2); try { String buildings = getJSON("h

正在解析json,我正在尝试设置一个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());

参考:

用这个都德:你根本没用这个

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());

您遇到了什么问题?请思考一下您的代码。。setText方法不追加文本。请使用tv1.appendlist.geti0;或者tv1.setTexttv1.getText+list.getiAnd i>queryArray.length不起作用。。。应该是我,雷。length@Raghunandan我想你的意思是tv1.setTexttv1.getText+list.geti…list是一个list对象它不是一个无限循环,它只会跳过for循环。但是,是的,这就是问题所在。