我正在将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());
}
}});
答案 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
,请参阅文档。