我对Android应用程序开发很新,我一直在阅读Spinner以及填充它们的不同方法,但没有我读过的引用,指定如何从数据库填充它。
我已经阅读了这里提出的一些问题以及其他网站上的一些教程,但没有说明如何使用Retrofit 2从MySQL数据库填充Spinner。
到目前为止,我已经走了多远。
RetrofitBuilder 这是改造构建器类
package com.testproject.test.network.config;
import com.testproject.test.BuildConfig;
import java.util.concurrent.TimeUnit;
import android.content.Context;
import okhttp3.Cache;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitBuilder {
public static Retrofit builder(Context context) {
OkHttpClient.Builder okhttpBuilder = new OkHttpClient().newBuilder();
okhttpBuilder.connectTimeout(60, TimeUnit.SECONDS);
okhttpBuilder.writeTimeout(60, TimeUnit.SECONDS);
okhttpBuilder.readTimeout(60, TimeUnit.SECONDS);
int cacheSize = 10 * 1024 * 1024;
Cache cache = new Cache(context.getCacheDir(), cacheSize);
okhttpBuilder.cache(cache);
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
okhttpBuilder.addInterceptor(interceptor);
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Config.BASE_URL)
.client(okhttpBuilder.build())
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit;
}
}
CountryListModel 这是国家/地区列表的模型类
package com.testproject.test.model;
import com.google.gson.annotations.SerializedName;
public class CountryListModel{
@SerializedName("country_id")
private int country_id;
@SerializedName("country")
private String country;
public CountryListModel() {
}
public CountryListModel(int country_id, String country) {
this.country_id = country_id;
this.country = country;
}
public int getCountry_id(){
return country_id;
}
public void setCountry_id(int country_id) {
this.country_id = country_id;
}
public String getCountry(){
return country;
}
public void setCountry(String country){
this.country= country;
}
}
CountryListInterface 这是国家/地区列表的界面
package com.testproject.test.network.interfaces;
import com.testproject.test.model.CountryListModel;
import com.testproject.test.network.config.Config;
import retrofit2.Call;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
public interface CountryListInterface {
@FormUrlEncoded
@GET(Config.API_COUNTRY_LIST)
Call<CountryListModel> getCountryList();
}
这是我到目前为止所拥有的。现在我想弄清楚如何继续 MainActivity 类。我需要添加什么来使微调器工作。
我已经在main_activity.xml
中安装了一个Spinner <Spinner
android:id="@+id/register_country"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/register_name" />
开,这是数据库中国家/地区列表数组的输出。它只是一个示例输出。
{"country_list":[{"country_id":"1","country":"United States"},{"country_id":"2","country":"Canada"}]}
如果我需要提供任何其他代码,请告诉我,如果我有可用的话,我很乐意提供。
提前致谢