2015-10-07 77 views
0

我试图在活动正在运行时传递我的对话框片段的String []项目,因为此字符串已更新且其值显示DialogFragment已更新,并且无法始终选择相同。 我已阅读过这个话题:stackoverflow但我认为这不完全是我需要的。 我知道有人帮我吗?将项目[]传递给DialogFragment

这是MI类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"); 

他probado一个PONER String[]项目科莫UNA变量德拉化酶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

使用setArguments检索束参数。 Bundle有putStringArray方法,这就是你需要的 – Blackbelt

+0

@Blackbelt谢谢!!! – wiki

回答

2

你可以犯DialogoFragment

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

时添加一个集合,然后你在你的对话框

String[] array = bundle.getArguments().getStringArray(A_KEY);