Запоздалое обновление 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);
    }

Я не могу понять в чем заключается проблема.


Ответы (0 шт):