2015-10-07 123 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);