我在textview中有所有这些项目,现在如何将它们放在listview中

时间:2014-03-05 15:53:16

标签: android json parsing listview

我正在将JSON解析为textview,我需要一些帮助,试图将其放入listview中。我知道这对某些人来说可能很容易,但我主要关注的是在textview中,你使用setText函数设置文本。我也是android的新手,所以我还没有这个基本功能,但我提前感谢您的帮助,谢谢。

    public void onClick(View arg0) {

        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="";
            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());
             //tv1.setText(arr[0]);
        } catch (Exception e) {
            e.printStackTrace();
            Log.d("JSONError", e.toString());
        }
    }});

1 个答案:

答案 0 :(得分:0)

基本上,您在布局文件中添加了ListView,然后在代码中设置Adapter ListView,其中包含数据。然后所有的魔法都将为你完成。

请阅读
http://developer.android.com/guide/topics/ui/layout/listview.html http://developer.android.com/guide/topics/ui/declaring-layout.html#AdapterViews

所以在你的情况下,它看起来像这样:

ListView listView = (ListView) findViewById(R.id.listview);

...

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

ArrayAdapter adapter = new ArrayAdapter<String>(this, 
    android.R.layout.simple_list_item_1, list);

listView.setAdapter(adapter);
adapter.notifyDataSetChanged();

这将获取list的内容,并为每个条目创建一个ListView项。文本设置为由android提供的布局文件android.R.layout.simple_list_item_1

如果您更改ArrayAdapter(以及ListView)的内容,则必须致电adapter.notifyDataSetChanged()以通知系统内容已更改。

要更改布局,或为其他数据源添加Adapter,请参阅文档。