微调器的视图不会更新

问题描述 投票:0回答:1

我正在使用相互依赖的微调器。因此,当我在旋转器A中选择一个值时,其他旋转器B,C,D的arraylist会相应地改变。当我在微调器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) {


        }


    });  

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

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

        }
    });

这里当我选择与之前相同索引的项目时,它不会在微调器视图中更新。

android dynamic spinner android-spinner
1个回答
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) {


            }  
});  
© www.soinside.com 2019 - 2024. All rights reserved.