将数组中的数据加载到微调器中
Load data from an Array into a Spinner
我调用服务器,服务器以数组格式 [Voters, Passport, DriversLicense, SocialSecurity] 给我一个响应。我想将项目添加到微调器,以便用户可以从微调器一次 select 一个项目。
下面是我的代码:
public void loadIdTypes() {
mAPIService.loadIdTypes().enqueue(new Callback<IdType>(){
@Override
public void onResponse(Response<IdType> response, Retrofit retrofit) {
String name = response.body().getData().toString();
Log.i("cityName", name);
}
@Override
public void onFailure(Throwable t) {
}
});
}
我想 IdType 就是您所说的数组。如果是这样,那么您只需要为您的微调器创建一个适配器,如下所示:
首先,如果您在 Activity 中使用微调器,则在 onCreate 方法中初始化微调器;如果您使用片段,则在 onViewCreated 中初始化微调器:
Spinner s = (Spinner) findViewById(R.id.Spinner01);
然后在您的回调中,您应该执行以下操作:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
android.R.layout.simple_spinner_item, response.body().getData());
s.setAdapter(adapter);
您可以将上下文作为参数传递给方法 "loadIdTypes"。如果该代码在 Activity 中使用,只需使用 MyActivity.this。如果您在 Fragment 中使用它,只需调用 getContext()。
名为 "android.R.layout.simple_spinner_item" 的布局只是默认布局,您可以使用您想要的布局。
第三个参数应该是数组或者List。
有关详细信息,您可以查看 official example
我调用服务器,服务器以数组格式 [Voters, Passport, DriversLicense, SocialSecurity] 给我一个响应。我想将项目添加到微调器,以便用户可以从微调器一次 select 一个项目。
下面是我的代码:
public void loadIdTypes() {
mAPIService.loadIdTypes().enqueue(new Callback<IdType>(){
@Override
public void onResponse(Response<IdType> response, Retrofit retrofit) {
String name = response.body().getData().toString();
Log.i("cityName", name);
}
@Override
public void onFailure(Throwable t) {
}
});
}
我想 IdType 就是您所说的数组。如果是这样,那么您只需要为您的微调器创建一个适配器,如下所示:
首先,如果您在 Activity 中使用微调器,则在 onCreate 方法中初始化微调器;如果您使用片段,则在 onViewCreated 中初始化微调器:
Spinner s = (Spinner) findViewById(R.id.Spinner01);
然后在您的回调中,您应该执行以下操作:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
android.R.layout.simple_spinner_item, response.body().getData());
s.setAdapter(adapter);
您可以将上下文作为参数传递给方法 "loadIdTypes"。如果该代码在 Activity 中使用,只需使用 MyActivity.this。如果您在 Fragment 中使用它,只需调用 getContext()。 名为 "android.R.layout.simple_spinner_item" 的布局只是默认布局,您可以使用您想要的布局。 第三个参数应该是数组或者List。
有关详细信息,您可以查看 official example