我想創建一個AlertDialog這樣的:無法創建AlertDialog:程序兼容性錯誤
counterButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
new AlertDialog.Builder(context)
.setTitle("Delete entry")
.setMessage("Are you sure you want to delete this entry?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show(); // <------- crashes here
return true;
}
});
我使用的是程序兼容性主題爲我的應用程序。這裏是我的AndroidManifest.xml
的application
元素:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
正如你看到的,我的主題設置爲@style/Theme.AppCompat.Light.NoActionBar
。 但每當我運行我的應用程序崩潰並出現以下錯誤信息:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
我GOOGLE了一番,發現在這麼幾個類似的問題,但沒能解決問題。我正在使用AppCompat
主題,那麼我做錯了什麼?
是否有可能在MainActivity中設置了xml佈局中的另一個主題? – Jaythaking
@Jaythaking,謝謝!我剛剛檢查過。我沒有在我的'activity_main.xml'中指定任何主題。 –
您傳遞給'AlertDialog.Builder'的是什麼'context'?它是你的Activity還是'getApplicationContext()'? – ianhanniballake