Android Studio:如何使用Retrofit 2,MySQL从数据库填充Spinner

时间:2017-12-19 23:46:54

标签: android mysql android-studio retrofit2

我对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"}]}

如果我需要提供任何其他代码,请告诉我,如果我有可用的话,我很乐意提供。

提前致谢

0 个答案:

没有答案