Estoy desarrollando una demostración simple. Aquí en esta demostración, solo estoy creando un diálogo de alerta personalizado simple. Funciona bien.Diálogo de alerta personalizada de Android Pantalla Error después de cambiar la versión de compilación
Me muestra el resultado perfecto cuando construyo la aplicación en 1.6, pero cuando cambio la versión de Android de 1.6 a 2.2, muestra el resultado inesperado. No muestra la pantalla de fondo en la que muestro el cuadro de diálogo de alerta personalizado.
Aquí está mi archivo xml.diálogo personalizado archivo de tema
<?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>
Aquí está mi CustomConfirmOkDialog Clase
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();
}
}
Calling esta clase de mi actividad principal utilizando el código de abajo.
CustomConfirmOkDialog dialog = new CustomConfirmOkDialog(MainActivity.this, R.style.CustomDialogTheme, Utility.INVALID_USERNAME_PASSWORD);
dialog.show();
Aquí se puede notar claramente que 1st image
muestra el fondo. Su versión en Android 1.6 mientras que 2nd image
no muestra el fondo. Muestra toda la pantalla negra. Su construcción en la versión de Android 2.2. Estoy muy agradecido si alguien puede resolver este problema.
¿Alguien me puede ayudar a resolver este simple y tonto problema?
Gracias de antemano.
Cuando dices cambiar la versión, ¿te refieres a la versión de destino, versión mínima o versión máxima? ¿O simplemente te refieres a un dispositivo diferente que tiene una versión más alta? – Gallal
estoy hablando de la versión de destino de compilación del proyecto. –
comentario tonto pero me he enfrentado al mismo problema así que ... ¿está probando la demostración en emulador con sdk 2.2 porque el dispositivo o emulador a veces hace que la vista no se muestre perfectamente cuando se ejecuta la versión superior de la aplicación para bajar la versión del emulador o dispositivo. – MKJParekh