Ich bin ziemlich neu in der Android-Entwicklung und habe meine erste "echte" Anwendung erstellt, die Folgendes tut:
- Startet MainActivity
MainActivity verarbeitet zusätzliche Daten und zeigt dann ein
ViewDialog
erweitertes anDialog
.ViewDialog
hat eineshowDialog()
Methode, die Folgendes ausführt, um Folgendes einzurichten und anzuzeigenDialog
:protected void showDialog(final Activity activity) { dialog = new Dialog(activity); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setCancelable(false); dialog.setContentView(dialog_layout); // Set background color of the dialog ConstraintLayout currentLayout = (ConstraintLayout) dialog.findViewById(R.id.Dialog); // setup of views etc ... // Finally dislay `Dialog` dialog.show(); // Method called to start a `DialogTimer` which extends `CountDownTimer` }
MainActivity zeigt
ViewDialog
Folgendes:public class MainActivity extends AppCompatActivity { private static Context appContext; private static ViewDialog notify; protected void onCreate(Bundle savedInstanceState) { // methods and processing etc... // time to display dialog notify = new ViewDialog(mParameters, mThemeHandler ); // ******************** Show dialog box ******************* notify.showDialog(activity: this); // showDialog just calls `Dialog.show()` notify.ApplyTheme(); }
Wenn der Timer abläuft oder der Benutzer eine Taste drückt,
ViewDialog
wird die geschlossen und die Anwendung mit dem folgenden Code beendet:mButton1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CancelTimer(); activity.finishAndRemoveTask(); dialog.dismiss();
Das Problem ist, dass ViewDialog
ich beim Entlassen gelegentlich sehen kann, wie eine Nachricht aussieht, in der die Aktivitäten android:label
angezeigt werden, die in der AndroidManifest-Datei eingerichtet sind.
Ich bin mir nicht sicher , warum dies geschieht, aber ich davon ausgehen , es ist eine Sache des Anzeige - MainActivity
Layouts , wenn die ViewDialog
schließt , dass es seine eigene verwendet dialog_layout
Layout - Datei.
Ich habe mit so vielen verschiedenen Dingen herumgespielt und Code / Layouts usw. geändert, und ich konnte meinen Fehler nicht finden.
Welche Hinweise und Hinweise helfen mir, dies zu beheben? Gerne stelle ich Ihnen bei Bedarf weitere Details zur Verfügung.
Das Layout und die Manifestdateien finden Sie hier:
- Manifest https://pastebin.com/GL70FxGh
- activity_main.xml https://pastebin.com/qDVa0LrN
- dialog_layout.xml https://pastebin.com/RC4e6W9T
quelle
Antworten:
Sie können dies erreichen, indem Sie das Attribut android: theme auf @android: style / Theme.NoTitleBar für Ihr Element in Ihrer AndroidManifest.xml wie folgt festlegen:
quelle
Der Code, den Sie gepostet haben, reicht nicht aus, um herauszufinden, warum dies geschieht, aber es gibt eine universelle Lösung, um den Aktivitätstitel nicht anzuzeigen (der im Beschriftungsfeld des Manifests festgelegt ist).
Deklarieren Sie in Ihrer styles.xml ein neues Thema wie
und danach machen Sie es zum Thema Ihrer Aktivität wie diese
Ich bin mir zwar nicht hundertprozentig sicher (da dieses Verhalten in einem tatsächlichen Code Ihrer Aktivität geändert werden kann), aber ich denke, es könnte helfen.
Ich hoffe es wird helfen.
quelle
setTitle()
einer sehr langen Zeichenfolge sehr deutlich sehen konnte, dass die kleine "Toast" -ähnliche Meldung, die beim Schließen des Dialogfelds angezeigt wird, der Titel der Hauptaktivität ist. Ich werde auf ein Video verlinken, das zeigt, was bald passiert.Es stellt sich heraus, dass, wenn ich mich ändere:
zu
Das Problem verschwindet. Ich weiß nicht warum, aber ich werde es nehmen.
quelle
quelle