Java RecyclerView没有显示任何内容
我想用Java RecyclerView没有显示任何内容,java,android,json,Java,Android,Json,我想用RecyclerView显示我的json响应,但它什么也没显示! 这是我的json: [ { "key": "test", "vals": [ { "Id": 0, "Group": "test", "Type": 0, "Name": "ram", "Value": "8", "Sort": 2 }, { "Id": 0,
RecyclerView
显示我的json
响应,但它什么也没显示!
这是我的json
:
[
{
"key": "test",
"vals": [
{
"Id": 0,
"Group": "test",
"Type": 0,
"Name": "ram",
"Value": "8",
"Sort": 2
},
{
"Id": 0,
"Group": "test",
"Type": 0,
"Name": "cpu",
"Value": "2.4",
"Sort": 1
}
]
},
{
"key": "mobile",
"vals": [
{
"Id": 0,
"Group": "mob",
"Type": 0,
"Name": "camera",
"Value": "8",
"Sort": 5
},
{
"Id": 0,
"Group": "mob",
"Type": 0,
"Name": "cpu",
"Value": "4",
"Sort": 0
},
{
"Id": 0,
"Group": "mob",
"Type": 0,
"Name": "Ram",
"Value": "4",
"Sort": 0
}
]
这是我的Java
代码:
JSONObject jsonObject = new JSONObject(s);
JSONArray array = jsonObject.getJSONArray("key");
for(int i=0;i<array.length();i++) {
JSONObject o = array.getJSONObject(i);
ListItem_spec item = new ListItem_spec(o.getString("id"),o.getString("group"),o.getString("type"),o.getString("name"),o.getString("value"),o.getString("sort"),o.getString("key"));
listItems.add(item);
}
adapter = new MyAdapter_spec(listItems,getContext());
recyclerView.setAdapter(adapter);
JSONObject JSONObject=新的JSONObject;
JSONArray数组=jsonObject.getJSONArray(“key”);
对于(int i=0;i是否已将布局管理器附加到回收器视图?是否已将布局管理器附加到回收器视图?您正在尝试分析此类结构:
{
"key": [
{
"id": 0,
"group": "test",
"type": 0,
"name": "ram",
"value": "8",
"sort": 2,
"key": "someKey"
},
...
]
}
但是您有一个autherjson
结构。请尝试以下代码:
JSONArray array = new JSONArray(s);
for(int i=0; i < array.length(); i++) {
JSONObject valsObj = array.getJSONObject(i);
JSONArray valsArray = valsObj.getJSONArray("vals");
String key = valsObj.getString("Key");
for(int j=0; j < valsArray.length; j++) {
JSONObject o = valsArray.getJSONObject(j);
ListItem_spec item = new ListItem_spec(o.getString("Id"), o.getString("Group"), o.getString("Type"), o.getString("Name"), o.getString("Value"), o.getString("Sort"), key);
listItems.add(item);
}
}
adapter = new MyAdapter_spec(listItems, getContext());
recyclerView.setAdapter(adapter);
JSONArray数组=新的JSONArray;
对于(int i=0;i
您正在尝试解析这样的结构:
{
"key": [
{
"id": 0,
"group": "test",
"type": 0,
"name": "ram",
"value": "8",
"sort": 2,
"key": "someKey"
},
...
]
}
但是您有一个autherjson
结构。请尝试以下代码:
JSONArray array = new JSONArray(s);
for(int i=0; i < array.length(); i++) {
JSONObject valsObj = array.getJSONObject(i);
JSONArray valsArray = valsObj.getJSONArray("vals");
String key = valsObj.getString("Key");
for(int j=0; j < valsArray.length; j++) {
JSONObject o = valsArray.getJSONObject(j);
ListItem_spec item = new ListItem_spec(o.getString("Id"), o.getString("Group"), o.getString("Type"), o.getString("Name"), o.getString("Value"), o.getString("Sort"), key);
listItems.add(item);
}
}
adapter = new MyAdapter_spec(listItems, getContext());
recyclerView.setAdapter(adapter);
JSONArray数组=新的JSONArray;
对于(int i=0;i
如果您想使用Gson..您可以这样实现
创建模型
public class ListItem_spec{
private List<Vals> vals;
private String key;
public List<Vals> getVals (){
return vals;
}
public String getKey (){
return key;
}
}
public class Vals
{
private String Name;
private String Sort;
private String Value;
private String Type;
private String Id;
private String Group;
public String getName (){
return Name;
}
public String getSort (){
return Sort;
}
public String getValue (){
return Value;
}
public String getType (){
return Type;
}
public String getId (){
return Id;
}
public String getGroup (){
return Group;
}
}
公共类列表项\u规范{
私人名单;
私钥;
公共列表getVals(){
返回VAL;
}
公共字符串getKey(){
返回键;
}
}
公务舱
{
私有字符串名称;
私有字符串排序;
私有字符串值;
私有字符串类型;
私有字符串Id;
私有字符串组;
公共字符串getName(){
返回名称;
}
公共字符串getSort(){
返回排序;
}
公共字符串getValue(){
返回值;
}
公共字符串getType(){
返回类型;
}
公共字符串getId(){
返回Id;
}
公共字符串getGroup(){
返回组;
}
}
然后使用Gson()
ListlistItems=new Gson().fromJson(您的_JSON,new TypeToken(){}.getType());
adapter=新的MyAdapter_规范(listItems,getContext());
recyclerView.setAdapter(适配器);
//别忘了添加notifyDataSetChanged();
adapter.notifyDataSetChanged();
如果您想使用Gson..您可以这样实现
创建模型
public class ListItem_spec{
private List<Vals> vals;
private String key;
public List<Vals> getVals (){
return vals;
}
public String getKey (){
return key;
}
}
public class Vals
{
private String Name;
private String Sort;
private String Value;
private String Type;
private String Id;
private String Group;
public String getName (){
return Name;
}
public String getSort (){
return Sort;
}
public String getValue (){
return Value;
}
public String getType (){
return Type;
}
public String getId (){
return Id;
}
public String getGroup (){
return Group;
}
}
公共类列表项\u规范{
私人名单;
私钥;
公共列表getVals(){
返回VAL;
}
公共字符串getKey(){
返回键;
}
}
公务舱
{
私有字符串名称;
私有字符串排序;
私有字符串值;
私有字符串类型;
私有字符串Id;
私有字符串组;
公共字符串getName(){
返回名称;
}
公共字符串getSort(){
返回排序;
}
公共字符串getValue(){
返回值;
}
公共字符串getType(){
返回类型;
}
公共字符串getId(){
返回Id;
}
公共字符串getGroup(){
返回组;
}
}
然后使用Gson()
ListlistItems=new Gson().fromJson(您的_JSON,new TypeToken(){}.getType());
adapter=新的MyAdapter_规范(listItems,getContext());
recyclerView.setAdapter(适配器);
//别忘了添加notifyDataSetChanged();
adapter.notifyDataSetChanged();
你有布局管理器吗?是的,我有。但是我忘了在@shmuel发布你的适配器代码。你有布局管理器吗?是的,我有。但是我忘了在@shmuel发布你的适配器代码。你可以添加适配器代码吗?描述很好。bt加1表示给出正确答案。描述很好。bt加1表示给出正确答案。