How to create an Array of Strings from an Array of Strings and an ArrayList of Integers?

0

I am creating an application that will need to store the specialties of each clinic registered in the application, these specialties will later be stored in the Firebase database, I am using a Dialog with checkboxes where they will show the clinical specialties, I am also using an array of strings which has a reference to an array defined in the string.xml with the specialties, and an ArrayList that saves the results, which items in the list of specialties were selected, but I can not convert the selected items to a list with the name of the specialties that were selected .

In the setPositiveButton method, there is an example that I can pass the specialties only to a common string.

privateboolean[]especialidadesChecadas;privateString[]listaEspecialidades;privateArrayList<Integer>mEspecialidadeSelecionados=newArrayList<>();botaoEspecialidades.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){if(redeSelecionada!=null){AlertDialog.BuildermBuilder=newAlertDialog.Builder(CadastroActivity.this);mBuilder.setTitle("Seleciona as especialidades:")
                .setMultiChoiceItems(listaEspecialidades, especialidadesChecadas, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int position, boolean isChecked) {

                        if(isChecked){
                            if(!mEspecialidadeSelecionados.contains(position)){
                                mEspecialidadeSelecionados.add(position);
                            }
                        }   else if (mEspecialidadeSelecionados.contains(position)){
                                mEspecialidadeSelecionados.remove((Integer) position);
                                    }
                    }
                });

                mBuilder.setCancelable(false);
                mBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        String item = "";

                        for(int i= 0; i < mEspecialidadeSelecionados.size(); i++){
                            item = item + listaEspecialidades[mEspecialidadeSelecionados.get(i)];

                            if(i != mEspecialidadeSelecionados.size() -1){
                                item = item + ", ";
                            }
                        }

                        //DESSA FORMA CONSIGO VER TODAS AS ESPECIALIDADES NUMA UNICA STRING, MAS PRECISAVA 
                        //DE UM ARRAY DE STRING PARA ARMAZENAR DO FIREBASE DATABASE PARA PUXAR POSTERIORMENTE
                        Toast.makeText(CadastroActivity.this, ""+item, Toast.LENGTH_SHORT).show();

                    }
                });

                mBuilder.setNegativeButton("Fechar", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        dialog.dismiss();

                    }
                });

                mBuilder.setNeutralButton("Limpar", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        //Limpar selecionados
                        //Passa por todos os itens e deseleciona
                        for(int i = 0; i < especialidadesChecadas.length; i++){
                            especialidadesChecadas[i] = false;
                            mEspecialidadeSelecionados.clear();

                        }

                    }
                });


                AlertDialog mDialog = mBuilder.create();
                mDialog.show();
    
asked by anonymous 07.10.2018 / 23:25

0 answers