2016-06-09 14 views
1

Dies ist mein Dialog-Fragment. Unten sehen Sie die String-Auswahl, die das Ergebnis behält, nachdem ich aus der Liste der Zahlen aus dem Dialog gewählt habe. Wie kann ich diesen Wert in anderen Aktivitäten speichern?Rückgabewert von DialogFragment an andere Activity

final CharSequence[] items= {"1","2","3","4"}; 

String selection; 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState){ 



    AlertDialog.Builder builder= new AlertDialog.Builder(getActivity()); 
    builder.setTitle("CHOOSE YOUR ITEM TO DELETE").setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      switch (which){ 
       case 0: 
        selection=(String) items[which]; 
        break; 
       case 1: 
        selection=(String) items[which]; 
        break; 
       case 2: 
        selection=(String) items[which]; 
        break; 


      } 

     } 
    }).setPositiveButton("OK", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      Toast.makeText(getActivity(),"Your item to delete is "+ selection,Toast.LENGTH_SHORT).show(); 

     } 




    }); 
    return builder.create(); 

}

}

Antwort

0

Definieren Sie einen Hörer/Rückruf und haben die anderen Activity implementieren und in diesem DialogFragment, um eine Auswahl zu reagieren. StackOverflow enthält viele Beispiele für die Implementierung.

0

Definieren Sie eine öffentliche Methode in Ihrer Activity und und eine private variable wie unten.

private String mString; 

public setString(String s) 
{ 
    this.mString = s; 
} 

Und wenn Benutzer klickt get Aktivität Taste und wählen Sie die gewünschte Zeichenfolge wie folgt:

((YourActivity)getActivity).setString(selectedString); 

als Sie die Zeichenfolge andere Aktivitäten mit Bundle passieren kann.

Wenn Sie diese DialogFragment aus vielen Aktivitäten zeigen, können Sie eine Listener definieren und auf Ihre Aktivität implementieren.

public interface SelectionListener{ 
    void onStringSelected(String s); 
} 

((SelectionListener)getActivity).onStringSelected(selectedString); 
0

Für dauerhaft zu speichern: - Für dauerhaft Ihren Wert unter den Aktivitäten, sparen Sie Datenbank sagen SQLite verwenden können. Zum vorübergehenden Speichern: - 1. Für diese haben Sie eine Option der globalen ArrayList und damit können Sie speichern. 2.You kann Rückruf verwenden, wie hier beschrieben, und diese ist fast gleiche Problem wie Sie haben Callback to a Fragment from a DialogFragment

Sie können diese beispielsweise auch für weitere Details http://www.kylebeal.com/blog/2011/11/android-datepickerdialog-and-the-dialogfragment/

Verwandte Themen