2024-04-28 06:09:14
我做了一个代码如下:
public class MainActivity extends Activity {
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview);
String temp = "[{\"aa\":\"1\",\"bb\":\"2\"},{\"aa\":\"3\",\"bb\":\"4\"},{\"aa\":\"5\",\"bb\":\"6\"}]";
List<Map<String, Object>> data = getList(temp);
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item, new String[]{"aa","bb"}, new int[]{R.id.aa,R.id.bb});
listview.setAdapter(adapter);
}
public Map<String, Object> getMap(String jsonString) {
JSONObject jsonObject;
try {
jsonObject = new JSONObject(jsonString);
@SuppressWarnings("unchecked")
Iterator<String> keyIter = jsonObject.keys();
String key;
Object value;
Map<String, Object> valueMap = new HashMap<String, Object>();
while (keyIter.hasNext()) {
key = (String) keyIter.next();
value = jsonObject.get(key);
valueMap.put(key, value);
}
return valueMap;
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
public List<Map<String, Object>> getList(String jsonString) {
List<Map<String, Object>> list = null;
try {
JSONArray jsonArray = new JSONArray(jsonString);
JSONObject jsonObject;
list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < jsonArray.length(); i++) {
jsonObject = jsonArray.getJSONObject(i);
list.add(getMap(jsonObject.toString()));
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
item的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/aa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp" />
<TextView
android:id="@+id/bb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="100dp"
android:textColor="#f00"
android:textSize="30sp" />
</LinearLayout>
最后的界面效果:
老师,我想问一下,假如说我们从服务器端通过get请求获取json,在Android客户端解析为list>,simpleadapter部分应该怎么做?以前是定义静态数组,把数组变量装到适配器里,然后在xml输出。现在是网络上获取变量,是不是要通过字段匹配,求一篇这样的文章例子。
2024-04-28 09:10:08
这样能做到吗?那json解析究竟是解析成什么样子的?
2024-04-28 04:15:02