In Android Dialog, wie man onActivityResult für startActivityForResult einrichten?

Von einer Aktivität kann ich einfach das onActivityResult() startActivityForResult() und onActivityResult() anrufen und alles funktioniert gut.

Nun muss ich startActivityForResult() aus dem Dialog aufrufen. Aber ich kann das onActivityResult() nicht onActivityResult() , ich glaube, Dialog ist keine Activity .

  • ExpandableListView Group View Erweitern Standard
  • Wie kann ich meine kundenspezifischen Gegenstände machen?
  • Java / Android - Konvertieren Sie eine GMT-Zeitzeichenfolge nach Ortszeit
  • Gespeicherte Ausnahme
  • Übergeben von Layout_weight Reference aus Dimensionen (Dimens)
  • Intent.ACTION_CALL Problem (SecurityException)
  • Wie bekomme ich das Ergebnis?

    Ich versuche so etwas in einem Dialog, aber es ist gescheitert.

     //create new Intent Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, m_PicUri); ((Activity) getContext()).startActivityForResult(intent, Const.TAKE_PIC_ACTIVITY_RET_CODE); 

  • Offene Straßenkarten api für android
  • Android.database.CursorIndexOutOfBoundsException: Index -1 angefordert, mit einer Größe von 2
  • Wie funktioniert implizit beigetretene Spalten mit Android-Kontakten?
  • Sollten Sie AccountManager zum Speichern von Benutzernamen und Passwörtern für eine Android App verwenden?
  • Gibt es einen Neun-Patch-Loader für iPhone?
  • Android NinePatch .png Dateiformat?
  • 5 Solutions collect form web for “In Android Dialog, wie man onActivityResult für startActivityForResult einrichten?”

    Sie können Ihre Activity deklarieren, um ein Dialog Thema zu haben. Schau in diese SO-Frage: Android-Aktivität als Dialog

    Sie würden dies in Ihrer AndroidManifest.xml Datei AndroidManifest.xml :

     <activity android:theme="@android:style/Theme.Dialog" /> 

    Du solltest startActivityForResult() wie normal verwenden. Ich weiß, die BluetoothChat Beispiel Android-Programm verwendet etwas ähnliches, um die Bluetooth-Gerät, das Sie aus einer Dialog Liste wählen.

    Wenn dein Dialog ein Dialogfragment ist, kannst du verwenden

     getActivity().startActivityForResult(intent); 

    Auf diese Weise wird das Ergebnis an die Aktivität gesendet, die den Dialog erstellt hat

    Sie können DialogFragment anstelle von Dialog verwenden. Denn der Dialog ist sekundär zu seiner Tätigkeit. Wenn du die Aktivität mit startActivityForResult () startet, wird dein Dialog entlassen

    Ein anderes Beispiel Verwenden Sie Rückruf

    Schnittstelle erstellen

      public interface DialogCallback { void getResults(String results); } 

    Erstellen Sie DialogFragment

     public class DialogFragment extends DialogFragment { DialogCallback dialogCallback; public DialogFragment setCallBack(DialogCallback dialogCallback){ this.dialogCallback = dialogCallback; return this; } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return super.onCreateDialog(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.your_layout, container, false); return view; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); dialogCallback.getResults("hello"); } } 

    In deiner Tätigkeit

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); new DialogFragment().setCallBack(dialogCallback).show(getFragmentManager(),""); } DialogCallback dialogCallback = new DialogCallback() { @Override public void getResults(String results) { if(results!=null){ Log.e(TAG,results); } } }; 

    Ausgabe

    Wenn du das DialogFragment entlassen wirst, wirst du das "hallo" ansehen

    Verwenden Sie das Kompatibilitätspaket und erstellen Sie dann Ihren Dialog mit DialogFragment

    Auf dem Dialog-Konstruktor übergeben Sie die Referenz der übergeordneten Aktivität, dann können Sie im Dialog wie folgt verwenden,

     parentActivity.startActivityForResult(intent, CODE); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.