Intereting Posts
Как создать базовое приложение для Android USB Host? Начать новую активность из класса non Activity Android studio Execution failed for task ': app: packageAllDebugClassesForMultiDex' Как использовать центр представления как контрольную точку внутри RelativeLayout Возможно ли иметь «дополнительные» разрешения в Android? Конвертировать PNG-изображения в 9 патчей в Android Studio Зачем использовать базу данных sqlite в Android? Как вызвать щелчок или отправить событие при совместном использовании данных в других приложениях на Android? Что такое Android Support Library? Как получить представление из эспрессо, чтобы перейти в IdlingResource? Получайте события касания в диалоге, который отображается сам, когда палец уже касался экрана Android PagerAdapter не вызывает функцию instantiateItem Lollipop: рисовать позади statusBar с его цветом, установленным на прозрачный Android: Как отображать большой анимированный gif с учетом URL-адреса? Воспроизведение локального аудиофайла в Android-приложении Android

Отображение диалогового окна Android Custom Alert после изменения версии сборки

Я разрабатываю простое демо. Здесь, в этой демонстрации, я просто создаю один простой настраиваемый диалог оповещений. Он работает нормально.

Это показывает мне идеальный результат, когда я создаю приложение в версии 1.6, но когда я меняю версию Android с 1,6 до 2,2, это показывает неожиданный результат. Он не отображает фоновый экран, на котором отображается экран настраиваемого предупреждения.

Вот мой xml-файл. Пользовательский файл диалогового окна

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomDialogTheme" parent="@android:style/AlertDialog"> <item name="android:windowFrame">@null</item> <item name="android:windowContentOverlay">@null</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowAnimationStyle">@android:style/Theme.Dialog</item> </style> </resources> 

Вот мой класс CustomConfirmOkDialog

 package com.utility.org; import android.app.Activity; import android.app.Dialog; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class CustomConfirmOkDialog extends Dialog implements OnClickListener { private Button okButton = null; private TextView infoText=null,confirmBody=null; private int errorMessage=0; @SuppressWarnings("unused") private Activity activity; public CustomConfirmOkDialog(Activity context,int customdialogtheme,int errorMessage) { super(context,customdialogtheme); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.confirm_ok); this.errorMessage = errorMessage; this.activity = context; initControls(); } private void initControls() { okButton = (Button) findViewById(R.id.ok_button); okButton.setOnClickListener(this); infoText = (TextView)findViewById(R.id.infoText); confirmBody = (TextView)findViewById(R.id.confirmBody); switch (this.errorMessage) { case Utility.INVALID_USERNAME_PASSWORD: try { infoText.setText(R.string.signIn); confirmBody.setText(R.string.invalidUsernameAndPassword); } catch (Exception e) { e.printStackTrace(); } break; default: break; } } public void onClick(View v) { dismiss(); } } 

Вызов этого класса из моего основного вида деятельности с использованием приведенного ниже кода.

 CustomConfirmOkDialog dialog = new CustomConfirmOkDialog(MainActivity.this, R.style.CustomDialogTheme, Utility.INVALID_USERNAME_PASSWORD); dialog.show(); 

Введите описание изображения здесьВведите описание изображения здесь

Здесь вы можете четко заметить, что 1st image показывает фон. Его сборка в версии android 1.6, а 2nd image не отображает фон. Он показывает весь черный экран. Его встроенная версия Android 2.2. Я очень благодарен, если кто-то может решить эту проблему.

Может ли кто-нибудь помочь мне решить эту простую и глупую проблему?

Заранее спасибо.

Solutions Collecting From Web of "Отображение диалогового окна Android Custom Alert после изменения версии сборки"

Он разрешил мою проблему, изменив следующий код в XML-файле Custom Dialog Theme.

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomDialogTheme" parent="@android:style/Theme.Translucent.NoTitleBar"> <item name="android:windowFrame">@null</item> <item name="android:windowContentOverlay">@null</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> </style> </resources> 

Я также столкнулся с той же проблемой. Проблема в том, что я вызывал конструктор класса Dialog

Диалог (контекстный контекст, int themeId)

Он скроет фоновой активности. Единственное, что я нашел, это не вызов этого конструктора, а только вызов

Диалог (контекстный контекст)

И задайте свой стиль в файле макета.

Таким образом, в вашем коде, только пишите

супер (контекст)

вместо

Супер (контекст, тема);

По-видимому, это известная проблема .

Это происходит только тогда, когда вы пытаетесь наследовать темы фреймворка. Использование @android:style напрямую будет относиться к ним как к полноэкранному, который пробивает черный фон, как ожидалось.

Один из способов – начать с почти пустой темы (например, Panel или Translucent), а затем визуализировать то, что вам нужно, в вашем собственном макете (например, краях диалогового окна и т. Д.).

Думал, я до сих пор еще не совсем понял это решение.

И на самом деле, я не уверен, что они говорят о той же ошибке, которую вы видели, поскольку они говорят о том, что она не работает для более старой версии sdk (а не более новой, такой как ваша). См. Отчет об ошибке .