Я разрабатываю простое демо. Здесь, в этой демонстрации, я просто создаю один простой настраиваемый диалог оповещений. Он отлично работает.
Это показывает мне идеальный результат, когда я создаю приложение в версии 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. Я очень благодарен, если кто-то может решить эту проблему.
Может ли кто-нибудь помочь мне решить эту простую и глупую проблему?
Спасибо в Advance.