我有一些像json这样的数据。
{
"data": [
{
"name": "Online Earning",
"id": "172970482777411"
},
{
"name": "U Wanna Be My Friend",
"id": "193618510697929"
},
{
"name": "Photos That Will Take Your Breath Away",
"id": "102241993216852"
},
{
"name": "Dashing Mee",
"id": "218061968291332"
},
{
"name": "I want to be a good Muslim",
"id": "144132975732372"
},
{
"name": "Aik Dam Jhakaas",
"id": "988150887884868"
}
]
}
我想创建android listview,它只显示我给定数据中的名称列表。当我点击listview项时,它应该给我名字+ id并转到下一个活动。
请有人为此问题编写示例代码。
答案 0 :(得分:1)
首先获取模型类
public class Data
{
private String id;
private String name;
public String getId ()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public String getName ()
{
return name;
}
public void setName (String name)
{
this.name = name;
}
}
public class ListData
{
private Data[] data;
public Data[] getData ()
{
return data;
}
public void setData (Data[] data)
{
this.data = data;
}
}
现在您可以使用gson将json转换为Java对象
ListData myObject = gson.fromJson(jsonData, ListData.class);
现在,您可以为listview创建简单的适配器类。 这是网址: Custom Adapter for List View
答案 1 :(得分:1)
您必须遵循以下顺序:
根据用户点击项目时要显示的内容的需要创建课程。假设您想在用户点击项目(和项目展开)时显示文本和图像,然后使用适当的构造函数,getter和setter方法在类中添加文本和图像。
制作一个扩展BaseExpandableListAdapter
的适配器。这个适配器的好处是,它有getGroupCount
,getChildCount
等方法(在你的情况下,子计数为2; name和id),isExpanded
(对于组视图,这将是当用户点击任何项目时调用等等。
在您的类中创建ExpandableListView
,并在2中创建适配器的适配器对象,以设置ExpandableListView
适配器。
这ExpandableListView
public class ItemTypeAdapterFactory implements TypeAdapterFactory {
public <T> TypeAdapter<T> create(Gson gson, final TypeToken<T> type) {
final TypeAdapter<T> delegate = gson.getDelegateAdapter(this, type);
final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
return new TypeAdapter<T>() {
public void write(JsonWriter out, T value) throws IOException {
delegate.write(out, value);
}
public T read(JsonReader in) throws IOException {
JsonElement jsonElement = elementAdapter.read(in);
if (jsonElement.isJsonObject()) {
JsonObject jsonObject = jsonElement.getAsJsonObject();
if (jsonObject.has("content")) {
jsonElement = jsonObject.get("content");
}
}
return delegate.fromJsonTree(jsonElement);
}
}.nullSafe();
}
}
会帮助您。
答案 2 :(得分:0)
我终于找到了解决这个问题的简单方法。
那就是它。
这是我的代码。
curl(curl(rpsi, R), R)