【问题标题】:Pass item[] to DialogFragment将 item[] 传递给 DialogFragment
【发布时间】:2015-10-07 17:33:54
【问题描述】:

我试图在活动运行时传递我的对话框片段的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");

He probado a poner String[] items 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");

但它不起作用。

感谢您的帮助

【问题讨论】:

  • 使用 setArguments。 Bundle 有你需要的 putStringArray 方法
  • @Blackbelt 谢谢!!!

标签: android android-dialogfragment dialogfragment


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2020-04-17
    • 2016-11-20
    • 1970-01-01
    相关资源
    最近更新 更多