Mein Dialog ist eine Aktivität mit dem Thema android:theme="@android:style/Theme.Holo.Dialog"
definiert in AndroidManifest.xml
. Als ich die Aktivität von Activity A
mit Start:Aktivität startActivityForResult löst kein onActivityResult aus
Intent myIntent = new Intent(this, MyActivityAsDialog.class);
startActivityForResult(myIntent, REQUEST_DIALOG_ID);
hatte ich erwartet, dass nach dem Aufruf:
setResult(Activity.RESULT_OK);
finish();
In MyActivityAsDialog
onActivityResult()
auf Activity A
auslösen würde, wo ich die Aktivität.
Problem ist, dass MyActivityAsDialog
richtig gestartet wird, ist es richtig beendet ist, aber onActivityResult
vom Activity A
nie aufgerufen wird.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("EditImageActivity:", "onActivityResult............");
//code to handle return values comes here
}
AndroidManifest.xml:
<activity
android:name="my.package.MyActivityAsDialog"
android:label="@string/title_activity_choose_color_dialog"
android:theme="@android:style/Theme.Holo.Dialog"
android:parentActivityName="my.package.ActivityA" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="my.package.ActivityA" />
</activity>
MyActivityAsDialog:
public class MyActivityAsDialog extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_choose_color_dialog);
setTitle(R.string.colors_content_description);
//and others setup stuff
}
//from layout.xml
public void cancel(View view) {
setResult(Activity.RESULT_OK);
finish();
}
}
myActivityAsDialog Layout (activity_my_activity_as_dialog.xml
)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".ChooseColorDialogActivity" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="cancel"
android:text="@android:string/cancel" />
</LinearLayout>
ACTIVITYA:
public class ActivityA extends Activity {
public static final int REQUEST_COLOR_DIALOG = 0xDAFFDEBB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_a);
//and other setup stuff
}
//from layout.xml
public void selectColor(View view) {
Intent myIntent = new Intent(this, MyActivityAsDialog.class);
startActivityForResult(myIntent, REQUEST_COLOR_DIALOG);
}
}
Was ist der LaunchMode von MyActivityAsDialog? –
@shuvro keine spezielle definieren (so ist es Standard-Startmodus) –
Können Sie mehr Code hinzufügen – Stefan