Android 如何从使用GSON解析的数组中为微调器充气

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”}] 我通

我是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);