Android 如何从使用GSON解析的数组中为微调器充气
我是GSON库的新手,我有一个json数据结构,看起来像这样 {“networks”:[{“networkId”:0,“networkName”:“Friends”},{“networkId”:“1”,“networkName”:“something”},{“networkId”:“4”,“networkName”:“第二件事”},{“networkId”:“28”,“networkName”:“另一个网络”},{“networkId”:“2”,“networkName”:“blah”}] 我通过以下请求获得此数据Android 如何从使用GSON解析的数组中为微调器充气,android,spinner,gson,android-arrayadapter,Android,Spinner,Gson,Android Arrayadapter,我是GSON库的新手,我有一个json数据结构,看起来像这样 {“networks”:[{“networkId”:0,“networkName”:“Friends”},{“networkId”:“1”,“networkName”:“something”},{“networkId”:“4”,“networkName”:“第二件事”},{“networkId”:“28”,“networkName”:“另一个网络”},{“networkId”:“2”,“networkName”:“blah”}] 我通
RestClient client = new RestClient();
client.setDebug();
client.AddParam("method", "get_user_networks");
client.AddParam("session_key", sessionKey);
client.Execute();
String response = client.getResponse();
NetworksData retval = null;
Gson gson = new Gson();
retval = gson.fromJson(response, NetworksData.class);
Networks数据类如下所示
public class NetworksData {
private List<Network> networks;
private List<Group> groups;
public List<Network> getNetworks() {
return this.networks;
}
public List<Group> getGroups() {
return this.groups;
}
public void setNetworks(List<Network> networks) {
this.networks = networks;
}
public void setGroups(List<Group> groups) {
this.groups = groups;
}
}
我试着用网络名称膨胀一个微调器,我可以手动遍历数组并构建一个字符串数组,然后以这种方式膨胀,但这似乎与整个对象模型的直觉相反。有没有办法直接将列表放入微调器
这是一种可行但错误的方法
networkItems = new String[total];
// networks
if (retval.getNetworks().size() > 0) {
for (Network network : retval.getNetworks()) {
networkItems[i] = network.getName();
i++;
}
}
然后像这样给旋转器充气
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, networkItems);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
networkSpinner.setAdapter(adapter);
ArrayAdapter adapter=新的ArrayAdapter(这是android.R.layout.simple\u spinner\u项,networkItems);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
networkSpinner.setAdapter(适配器);
使用nerworks列表或NetworksData对象构建自定义适配器。您可以子类化来实现适配器(注意,您也可以子类化或与ArrayAdapter(或任何其他实现)组合以重用它)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, networkItems);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
networkSpinner.setAdapter(adapter);