вид прядильщика не обновляется - PullRequest
0 голосов
/ 28 февраля 2019

Я использую счетчики, которые зависят друг от друга.Поэтому, когда я выбираю одно значение в счетчике A, список других счетчиков B, C, D меняется соответственно.когда я выбираю элемент в позиции 1 на счетчике B, а затем выбираю любое другое значение в счетчике A, данные на счетчике B обновляются.Поэтому я снова выбираю элемент в позиции 1 на счетчике B, вид не меняется, а при выборе элемента в любой другой позиции вид меняется.Таким образом, тот же индекс не получает обновленное значение в этом фрагменте кода.

   ArrayAdapter<String> myAdapterEmployer = new ArrayAdapter<String>(MainActivity.this,
            android.R.layout.simple_list_item_1,employerlist);
    myAdapterEmployer.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    employer.setAdapter(myAdapterEmployer);

    employer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                                   int position, long id)
        {
            if(position > 0) {
                employer1 = employer.getSelectedItem().toString();
                employeridname = employdetail.get(employer1);
                Sectorlist(employeridname);

            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {


        }


    });  

Это изменяет данные списка секторов каждый раз, когда элемент выбирается в работодателе.И тогда любой элемент выбирается в секторе списка.

     ArrayAdapter<String> myAdaptersector = new ArrayAdapter<String>(MainActivity.this,
            android.R.layout.simple_list_item_1,sectorlist);
    myAdaptersector.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sector.setAdapter(myAdaptersector);

    sector.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                                   int position, long id)
        {
            sector1=sector.getSelectedItem().toString();
           String selectedsectortext  = (String) parent.getItemAtPosition(position);

            if(position > 0){
                sectoridd=sectordetail.get(selectedsectortext);

            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

Здесь, когда я выбираю элемент с тем же индексом, что и раньше, он не обновляется в представлении счетчика.

1 Ответ

0 голосов
/ 28 февраля 2019

Внутри onItemSelected вращателя A вы можете установить адаптер на другие счетчики для обновления, и это будет работать, как вы хотите.

 employer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id)
            {
                if(position > 0) {
                    employer1 = employer.getSelectedItem().toString();
                    employeridname = employdetail.get(employer1);
                    Sectorlist(employeridname);

                    // Update other spinners here
                    myAdaptersector = new ArrayAdapter<String>(MainActivity.this,
                    android.R.layout.simple_list_item_1,sectorlist);
                    myAdaptersector.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    sector.setAdapter(myAdaptersector);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {


            }  
});  
...