Comment puis-je corriger cette erreur: Vous devez utiliser un Thème.AppCompat thème (ou descendant) avec cette activité
J'ai cherché sur internet tous les sites web pour corriger cette erreur, mais je ne pouvais pas. Je veux juste créer AlertDialog avec deux boutons Oui et Non.
C'est mon code:
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class DialogActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
Button btnDialog= (Button) findViewById(R.id.btnDialog);
btnDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialogMessage();
}
});
}
private void showDialogMessage(){
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
//Add the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//User clicked OK button
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//User cancelled the dialog
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
}
Et c'est mon Style:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
c'est mon style(v21):
<resources>
<!-- extend one of the Theme.AppCompat themes -->
<style name="AppTheme" parent="AppTheme.Base">
<!-- customize the color palette -->
<item name="android:colorPrimary">@color/colorPrimary</item>
<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:colorAccent">@color/colorAccent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:colorControlHighlight">@color/colorHighLight</item>
</style>
</resources>
cela est manifeste:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.saly.rastari" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".DialogActivity"
android:label="@string/title_activity_test"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Quand je clique sur le bouton de boîte de Dialogue, j'obtiens cette erreur:
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: FATAL EXCEPTION: main
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: Process: com.irannara.pda.pdaassistant, PID: 24352
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:309)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:278)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:252)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:76)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.support.v7.app.AlertController.installContent(AlertController.java:216)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:240)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.app.Dialog.dispatchOnCreate(Dialog.java:373)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.app.Dialog.show(Dialog.java:274)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at com.irannara.pda.pdaassistant.DialogActivity.showDialogMessage(DialogActivity.java:42)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at com.irannara.pda.pdaassistant.DialogActivity.access$000(DialogActivity.java:10)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at com.irannara.pda.pdaassistant.DialogActivity$1.onClick(DialogActivity.java:21)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.view.View.performClick(View.java:4780)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.view.View$PerformClick.run(View.java:19866)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5254)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
11-02 04:36:55.941 24352-24352/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
11-02 04:36:55.959 718-718/? E/EGL_emulation: tid 718: eglCreateSyncKHR(1209): error 0x3004 (EGL_BAD_ATTRIBUTE)
aucun de ces liens ne pouvait pas m'aider:
-
Vous avez besoin d'utiliser un Thème.AppCompat thème (ou descendant) avec cette activité
-
ActionBarCompat: java.lang.IllegalStateException: Vous devez utiliser un Thème.AppCompat
-
Besoin d'utiliser un Thème.AppCompat thème (ou descendant) avec cette activité???
et plus.
comment puis-je résoudre ce problème?
montrez-nous votre manifester pour vous aider à
Avez-vous essayé d'utilisation d'un support AlertDialog?
oui import android.de soutien.v7.app.AlertDialog;
Avez-vous essayé d'utilisation d'un support AlertDialog?
oui import android.de soutien.v7.app.AlertDialog;
OriginalL'auteur Salar Rastari | 2015-11-02
Vous devez vous connecter pour publier un commentaire.
Si vous avez d'autres styles les fichiers dans un autre côté les valeurs des dossiers comme "
values-v11
", "values-v14
"... Modifier le thème aussi et essayer de nettoyer votre application avant de l'exécuter.Modifié:
À partir de votre changement d'activité
getApplicationContext()
àthis
:à
Parce que la boîte de dialogue doit s'étend le
Appcompat
Thème.Si tous les styles fichier est modifié, voir mon édité réponse.
merci beaucoup @John, mon problème est résolu, c'est parce que
getApplicationContext()
Heureux de l'entendre. Donc, pensez à marquer ce que
accepted answer
pour les autres personnes qui ont le même problème de le résoudre rapidement.je vous remercie monsieur. vous avez sauvé ma vie, après avoir coincé à ce sujet pour 4 heures
OriginalL'auteur NamNH
Si quelqu'un rencontre ce problème avec des activités, essayez de configurer explicitement un thème à votre activité.
OriginalL'auteur aclokay
dans votre style.xml fichier ajouter le code ci-dessous-
style.xml
également définir le thème de ce genre dans votre activité
OU
propre projet et exécutez à nouveau..
OriginalL'auteur sud
Essayez d'ajouter ce qui suit à votre proguard-règles:
Si vous utilisez
Ont un coup d'oeil à Google Question Cents quatre vingt dix mille deux cent trente sept
OriginalL'auteur Oli