Передать item[] в DialogFragment

Я пытаюсь передать элементы String [] моего фрагмента диалога, когда действие выполняется, так как эта строка обновляется, а ее значения, которые показывают DialogFragment, обновляются и не всегда могут выбирать то же самое. Я прочитал эту тему: stackoverflow, но думаю, что это не совсем то, что мне нужно. Я знаю, кто-нибудь поможет мне?

Это мой класс DialogoSeleccion, который расширяет DialogFragment:

public class DialogoSeleccion extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        final String[] items = {"Español", "Inglés", "Francés"};

        AlertDialog.Builder builder = 
                new AlertDialog.Builder(getActivity());

        builder.setTitle("Selección")
        .setMultiChoiceItems(items, null, 
                new DialogInterface.OnMultiChoiceClickListener() {
        public void onClick(DialogInterface dialog, int item, boolean isChecked) {
                Log.i("Dialogos", "Opción elegida: " + items[item]);
            }
        });

        return builder.create();
    }
}

А это код основного класса:

android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
DialogoSeleccion dialogo = new DialogoSeleccion();
dialogo.show(fragmentManager, "tagSeleccion");

Он попытался рассмотреть String[] элементов, которые являются переменными в разделе DialogoSeleccion y luego acceder desde el main de la form:

public class DialogoSeleccion extends DialogFragment {
    private String[] opciones;
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {   
    ...

String[] opciones = {"1","2"}
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
DialogoSeleccion dialogo = new DialogoSeleccion();
dialogo.items= opciones[];
dialogo.show(fragmentManager, "tagSeleccion");

Но это не работает.

Спасибо за вашу помощь


person wiki    schedule 07.10.2015    source источник
comment
используйте сетаргументс. Bundle имеет метод putStringArray, который вам нужен   -  person Blackbelt    schedule 07.10.2015
comment
@Черный пояс, спасибо!!!   -  person wiki    schedule 07.10.2015


Ответы (1)


Вы можете добавить пакет при фиксации DialogoFragment

Bundle bundle= new Bundle();
bundle.putStringArray(A_KEY,mArray);
DialogoSeleccion dialogo = new DialogoSeleccion();
dialogo.setArguments(bundle);

И затем вы получаете аргументы пакета в своем диалоговом окне

String[] array = bundle.getArguments().getStringArray(A_KEY);
person AndroidEnthusiast    schedule 07.10.2015