Ich habe dieses einfache Dialogfeldfragment über den Startbildschirm angezeigt, was gut funktioniert, außer wenn ich den Fragmentdialog ableite, erscheint ein zweites Kästchen mit dem Wort Dialogue in es. Ich kann nicht für das Leben von mir herausfinden, woher es kommt.Android - Nach dem Schließen eines Dialogfeldfragments erscheint ein kleines Dialogfeld
Hat jemand irgendwelche Vorschläge? Könnte es etwas mit der Kette von Klassen zu tun haben, die aufgerufen werden, und dass einer von ihnen die Warnung erneut startet, aber ohne die benutzerdefinierte Layoutansicht?
Das Dialog Fragment.
public class DialogFragmentTest extends DialogFragment implements View.OnClickListener{
private AlertDialog.Builder mBuilder;
private AlertDialog mAlertDialog;
private View mDialogView;
private Button mOkBtn, mCancelBtn;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mDialogView = inflater.inflate(R.layout.dialog_layout, container, false);
Log.d("DialogFrag", "onCreate");
// mBuilder = new AlertDialog.Builder(getContext());
mOkBtn = (Button) mDialogView.findViewById(R.id.ok);
mCancelBtn = (Button) mDialogView.findViewById(R.id.cancel);
mOkBtn.setOnClickListener(this);
mCancelBtn.setOnClickListener(this);
return mDialogView;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.ok:
this.dismiss();
break;
case R.id.cancel:
this.dismiss();
break;
}
}
}
Dialog Empfänger Klasse.
public class AlertDialogReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent alarmIntent = new Intent("android.intent.action.MAIN");
alarmIntent.setClass(context, AlarmDialogClass.class);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(alarmIntent);
}
}
Die Klasse, die das Fragment instanziiert.
public class AlarmDialogClass extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("AlarmClass", "onCreate:");
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
DialogFragmentTest dft = new DialogFragmentTest();
dft.show(fm, "Sample Fragment");
}
}
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.android.shnellers.dialogue"
xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".AlarmDialogClass"
android:theme="@android:style/Theme.Dialog"
android:launchMode="singleInstance" />
<receiver android:process=":remote" android:name=".AlertDialogReceiver"/>
</application>