Запоздалое обновление Spinner
В моем проекте я реализую два Spinner'a, контекст второго зависит от первого, но не наоборот. Подгрузка данных с сервера происходит в методе get_string_by_id(id),где id это выбранный элемент в первом Spinner, и заполняет несколько массивов, а так-же выводит в TextView весе полученные данные. Но при заполнении второго Spinner'a происходит задержка. Показываются предыдущие данные. Но при этом есть TextView в котором все происходит корректно. На скриншотах ниже я продемонстрирую эту задержку. Сразу скажу что "А" это базовое заполнение.
Привожу часть кода, в которой заполняется второй Spinner
rStringName.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, android.view.View view, int i, long l) {
temp_string_id = (int)main_id_rSting[i];
delete_rString_btn.setOnClickListener(new android.view.View.OnClickListener() {
@Override
public void onClick(android.view.View view) {
delete_rString(temp_string_id);
}
});
mTextViewResults.setText("");
get_string_by_id(temp_string_id);
ArrayAdapter<String> string_textAdapter = new ArrayAdapter<String>(View.this, android.R.layout.simple_spinner_item, string_text);
string_textAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
str_list.setAdapter(string_textAdapter);
string_textAdapter.notifyDataSetChanged();
string_textAdapter.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
А это метод, который вызывается
private void get_string_by_id(int tt)
{
String url_head = "http://10.0.2.2:8080/geet/string/"+ String.valueOf(tt) +"/massage";
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET,url_head, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
id = new int[response.length()];
string_speed = new int[response.length()];
string_color_type = new int[response.length()];
string_text = new String[response.length()];
string_color = new String[response.length()];
string_timing_type = new String[response.length()];
string_timing = new String[response.length()];
for (int i = 0; i < response.length();i++){
JSONObject string_params = response.getJSONObject(i);
int Id = string_params.getInt("id");
String String_text = string_params.getString("string_text");
int String_speed = string_params.getInt("string_speed");
int String_color_type = string_params.getInt("string_color_type");
String String_color = string_params.getString("string_color");
String String_timing_type = string_params.getString("string_timing_type");
String String_timing = string_params.getString("string_timing");
id[i] = Id;
string_speed[i] = String_speed;
string_color_type[i] = String_color_type;
string_text[i] = String_text;
string_color[i] = String_color;
string_timing_type[i] = String_timing_type;
string_timing[i] = String_timing;
mTextViewResults.append(String_text + ", " + String.valueOf(String_speed)+", " +String.valueOf(String_color_type)+", " + String_color + ", " + String_timing + "\n\n");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() { // в случае возникновеня ошибки
@Override
public void onErrorResponse(VolleyError error) {
mTextViewResults.setText("Error");
error.printStackTrace();
}
});
mQueue.add(request);
}
Я не могу понять в чем заключается проблема.


