Я получаю список языков с сервера, используя rest api
в Android, используя модификацию.Я должен отправить ключ / идентификатор выбранного элемента в счетчик.Это данные Json
.
[
{
"key": "ab",
"language": "Abkhazian"
},
{
"key": "aa",
"language": "Afar"
},
{
"key": "zu",
"language": "Zulu"
}]
Я получаю данные языков в счетчике ... вот так ...
Call<List<LanguageListing>> call = RetrofitClient.getInstance().getApi().getLanguages();
call.enqueue(new Callback<List<LanguageListing>>() {
@Override
public void onResponse(Call<List<LanguageListing>> call, Response<List<LanguageListing>> response) {
List<LanguageListing> languages =response.body();
for (LanguageListing C:languages){
Log.d("Languages" , C.getLanguage() );
String[] languageName = new String[languages.size()];
for (int i=0 ; i<languages.size() ; i++){
languageName[i]= languages.get(i).getLanguage();
}
lan_spinner.setAdapter(new ArrayAdapter<String>(
getApplicationContext(),
R.layout.items_view,
languageName
));
}
}
@Override
public void onFailure(Call<List<LanguageListing>> call, Throwable t) {
Toast.makeText(Profile_Activity.this , t.getMessage() , Toast.LENGTH_SHORT).show();
}
});
, когда мне нужно обновить языкимне нужно отправить ключ на сервер, но я не могу получить ключ здесь ...
key = lan_spinner.getSelectedItem().toString();
из этой строки я просто могу получить название языка.пожалуйста, помогите с примером кода спасибо.
вот код, где мне нужно обновить язык ..
public void UpdateLanguage(){
user_id = DatabaseUtil.getInstance().getUser().getData().getID();
key = lan_spinner.getSelectedItem().toString();
mRegProgress.setTitle("Updating Language");
mRegProgress.setMessage("Please wait...");
mRegProgress.setCanceledOnTouchOutside(false);
mRegProgress.show();
Call<ResponseBody> update_lan = RetrofitClient.getInstance().getApi().updateLanguage(user_id , key);
update_lan.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
mRegProgress.dismiss();
String s = response.body().toString();
Toast.makeText(Profile_Activity.this , "Language Updated Successfully" , Toast.LENGTH_LONG).show(); }
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Toast.makeText(Profile_Activity.this , "There is some Error in updating your languages..." , Toast.LENGTH_SHORT).show();
}
});
}
Это мой класс модели ...
public class LanguageListing {
@SerializedName("key")
@Expose
private String key;
@SerializedName("language")
@Expose
private String language;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
}