1220 Stimmen

Du musst ein Theme.AppCompat-Thema (oder Abkömmling) mit dieser Aktivität verwenden

Android Studio 0.4.5

Android-Dokumentation zur Erstellung benutzerdefinierter Dialogfelder: http://developer.android.com/guide/topics/ui/dialogs.html

Wenn Sie ein benutzerdefiniertes Dialogfeld möchten, können Sie stattdessen eine Aktivität als Dialogfeld anzeigen, anstatt die Dialog-APIs zu verwenden. Erstellen Sie einfach eine Aktivität und setzen Sie ihr Theme auf Theme.Holo.Dialog im the Manifestelement:

Allerdings erhalte ich bei meinem Versuch die folgende Ausnahme:

java.lang.IllegalStateException: Sie müssen ein Theme.AppCompat-Thema (oder Nachfolger) für diese Aktivität verwenden

Ich unterstütze das Folgende, und ich kann nichts Größeres als 10 für das Minimum verwenden:

minSdkVersion 10
targetSdkVersion 19

In meinen Styles habe ich das Folgende:

</code></pre>

<p>Und in meinem Manifest habe ich dies für die Aktivität:</p>

<pre><code> <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:theme="@android:style/Theme.Holo.Light.Dialog"
            android:name="com.ssd.register.Dialog_update"
            android:label="@string/title_activity_dialog_update" >
        </activity>
</code></pre>

<p>Die Erstellung des Dialogfelds auf diese Weise war etwas, was ich gerne machen wollte, da das Layout bereits abgeschlossen ist.</p>

<p>Kann mir jemand sagen, wie ich dieses Problem umgehen kann?</p></x-turndown>

7voto

Kaloglu Punkte 1462

Sie haben viele Lösungen für diesen Fehler.

  1. Sie sollten Activity oder FragmentActivity anstelle von ActionbarActivity oder AppCompatActivity verwenden

  2. Wenn Sie ActionbarActivity oder AppCompatActivity verwenden möchten, sollten Sie in der Datei styles.xml von Theme.Holo.xxxx auf Theme.AppCompat.Light ändern (falls erforderlich hinzufügen DarkActionbar)

Wenn Sie keine erweiterten Attribute für die Aktionsleiste oder AppCompat benötigen, brauchen Sie keine Actionbar oder AppCompat zu verwenden.

7voto

Azhar osws Punkte 188

Ich hatte das gleiche Problem. Da ich eine benutzerdefinierte Navigationsleiste erstellt habe. Aber ich habe vergessen, das Thema in meinem Manifest wie folgt zu erwähnen

android:theme="@style/Theme.AppCompat.NoActionBar"

Sobald ich das obige Thema zu meinem Manifest hinzugefügt habe, wurde das Problem gelöst.

7voto

shikha Punkte 71

Im Android-Manifest ändern Sie einfach das Thema der Aktivität auf AppTheme wie im folgenden Code-Schnipsel

6voto

Md Imran Choudhury Punkte 7981

Ihre Aktivität erweitert ActionBarActivity, was das Anwenden des AppCompat-Themas erfordert. Ändern Sie von ActionBarActivity zu Activity oder FragmentActivity, dann wird das Problem gelöst.

Wenn Sie keine Action Bar verwenden:

android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"

6voto

Ajay Mourya Punkte 220

Ich bin auf dieses Problem gestoßen, als ich die SplashScreen Api verwendet habe, dieser Fehler wird auch geworfen, wenn installSplashScreen() nicht in der MainActivity aufgerufen wird

override fun onCreate(savedInstanceState: Bundle?) {
        installSplashScreen()
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X