从微调器动态更改基数 url
Change base url dynamically from spinner
我的登录名 activity 和 url 列表中有微调器。我想根据所选 url 动态更改基础 url。我该怎么做?下面是我的 Retrofit 客户端:
public class RetrofitClient {
private static Retrofit retrofit;
private static final String BASE_URL="Dynamically_URL";
public static Retrofit getRetrofitInstance(){
if(retrofit==null){
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.connectTimeout(25, TimeUnit.SECONDS)
.readTimeout(25, TimeUnit.SECONDS)
.writeTimeout(25, TimeUnit.SECONDS)
.build();
retrofit= new retrofit2.Retrofit.Builder()
.baseUrl(BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
首先将您选择的微调项保存到共享首选项
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences sharedPreferences = getSharedPreferences(Cons.PRIVATE_PREF, Context.MODE_PRIVATE);
sharedPreferences.edit().putString("url_selected", spinner.getSelectedItem().toString()).apply();
}
@Override
public void onNothingSelected(AdapterView<?> parent){}
});
然后调用 saved url 在您改造客户端的共享首选项中
public static Retrofit getRetrofitInstance(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(Cons.PRIVATE_PREF, Context.MODE_PRIVATE);
baseurl = sharedPreferences.getString("url_selected", "");
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.connectTimeout(25, TimeUnit.SECONDS)
.readTimeout(25, TimeUnit.SECONDS)
.writeTimeout(25, TimeUnit.SECONDS)
.build();
retrofit= new retrofit2.Retrofit.Builder()
.baseUrl(baseurl)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
我的登录名 activity 和 url 列表中有微调器。我想根据所选 url 动态更改基础 url。我该怎么做?下面是我的 Retrofit 客户端:
public class RetrofitClient {
private static Retrofit retrofit;
private static final String BASE_URL="Dynamically_URL";
public static Retrofit getRetrofitInstance(){
if(retrofit==null){
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.connectTimeout(25, TimeUnit.SECONDS)
.readTimeout(25, TimeUnit.SECONDS)
.writeTimeout(25, TimeUnit.SECONDS)
.build();
retrofit= new retrofit2.Retrofit.Builder()
.baseUrl(BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
首先将您选择的微调项保存到共享首选项
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences sharedPreferences = getSharedPreferences(Cons.PRIVATE_PREF, Context.MODE_PRIVATE);
sharedPreferences.edit().putString("url_selected", spinner.getSelectedItem().toString()).apply();
}
@Override
public void onNothingSelected(AdapterView<?> parent){}
});
然后调用 saved url 在您改造客户端的共享首选项中
public static Retrofit getRetrofitInstance(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(Cons.PRIVATE_PREF, Context.MODE_PRIVATE);
baseurl = sharedPreferences.getString("url_selected", "");
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.connectTimeout(25, TimeUnit.SECONDS)
.readTimeout(25, TimeUnit.SECONDS)
.writeTimeout(25, TimeUnit.SECONDS)
.build();
retrofit= new retrofit2.Retrofit.Builder()
.baseUrl(baseurl)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;