私は簡単なデモを開発中です。このデモでは、簡単なカスタムアラートダイアログを作成しています。それはうまく動作します。Androidカスタム警告ダイアログ表示ビルドバージョンを変更した後のエラー
私はアプリケーションを1.6でビルドすると完璧な結果を示しますが、Androidのバージョンを1.6から2.2に変更すると、予期しない結果が表示されます。カスタムアラートダイアログを表示する背景画面は表示されません。
ここにmy 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
は背景を示していることに気づくことができます。 2nd image
はバックグラウンドを表示しませんが、アンドロイド1.6バージョンでビルドします。黒い画面全体が表示されます。 Android 2.2でビルドされています。誰もがこの問題を解決できるなら、私は非常に感謝しています。
誰も私がこのシンプルで馬鹿馬鹿しい問題を解決するのを助けることができますか?
ありがとうございました。
バージョンを変更すると、ターゲットバージョン、最小バージョン、または最大バージョンを意味しますか?それとも、より高いバージョンの別のデバイスを意味するのでしょうか? – Gallal
私はプロジェクトビルドターゲットバージョンについて話しています。 –
愚かなコメントですが、私は同じ問題に直面しています...あなたはsdk 2.2でエミュレータのデモをテストしていますか?デバイスやエミュレータが原因で、バージョンエミュレータやデバイスを下位バージョンのアプリケーションを実行しているときに、 – MKJParekh