将项目[]传递给DialogFragment

时间:2015-10-07 09:23:00

标签: android android-dialogfragment dialogfragment

我正在尝试在活动运行时传递我的Dialog Fragment的String []项,因为此String已更新,其显示DialogFragment的值已更新,并且无法始终选择相同。 我已经阅读了这个主题:stackoverflow但我认为这不是我需要的。 我知道有人帮助我吗?

这是延伸DialogFragment的mi类DialogoSeleccion:

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");

他是一个poner String[]项目como una variable de la clase DialogoSeleccion y luego acceder desde el main de la forma:

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");

但它不起作用。

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以在提交DialogoFragment

时添加一个包
Bundle bundle= new Bundle();
bundle.putStringArray(A_KEY,mArray);
DialogoSeleccion dialogo = new DialogoSeleccion();
dialogo.setArguments(bundle);

然后在Dialog

中检索包参数
String[] array = bundle.getArguments().getStringArray(A_KEY);