微调器的视图未更新

时间:2019-02-28 07:09:33

标签: android dynamic spinner android-spinner

我正在使用彼此依赖的微调器。因此,当我在微调器A中选择一个值时,其他微调器B,C,D的数组列表也会相应更改。 当我选择微调器B上位置1的项目,然后选择微调器A中的任何其他值时,微调器B上的数据将更新。因此,我再次选择微调器B上位置1的项目,视图不变,而选择其他位置的项目则更改视图。因此,在这段代码中,相同的索引不会获得更新的值。

   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) {


        }


    });  

每次在雇主中选择一个项目时,此操作都会更改Sectorlist的数据。 然后在扇区列表中选择任何项目。

     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 :(得分:0)

在旋转器 A onItemSelected内,您可以将Adapter设置为要更新的其他旋转器,这将根据需要工作。

 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) {


            }  
});