Tôi đang phát triển bản trình diễn đơn giản. Ở đây trong bản demo này, tôi chỉ tạo một hộp thoại cảnh báo tùy chỉnh đơn giản. Nó hoạt động tốt.Hộp thoại cảnh báo tùy chỉnh Android Hiển thị lỗi sau khi thay đổi Phiên bản xây dựng
Nó cho tôi thấy kết quả hoàn hảo khi tôi xây dựng ứng dụng trong 1,6, nhưng khi tôi thay đổi phiên bản Android từ 1,6 xuống 2,2, nó cho thấy kết quả không mong muốn. Nó không hiển thị màn hình nền mà tôi hiển thị hộp thoại cảnh báo tùy chỉnh.
Đây là tệp xml của tôi.Tuỳ chỉnh Dialog Theme file
<?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>
Đây là CustomConfirmOkDialog Lớp tôi
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 lớp này từ hoạt động chính của tôi bằng cách sử dụng mã dưới đây.
CustomConfirmOkDialog dialog = new CustomConfirmOkDialog(MainActivity.this, R.style.CustomDialogTheme, Utility.INVALID_USERNAME_PASSWORD);
dialog.show();
Ở đây bạn có thể nhận thấy rõ ràng rằng 1st image
cho thấy nền. Bản dựng của nó trong phiên bản Android 1.6 trong khi 2nd image
không hiển thị nền. Nó cho thấy toàn bộ màn hình màu đen. Xây dựng của nó trong phiên bản Android 2.2. Tôi rất biết ơn nếu có ai có thể giải quyết vấn đề này.
Có ai có thể giúp tôi giải quyết vấn đề đơn giản và ngớ ngẩn này không?
Cảm ơn trước.
Khi bạn nói thay đổi phiên bản, bạn có nghĩa là phiên bản đích, min verion hoặc phiên bản tối đa không? Hay bạn chỉ đơn giản có ý nghĩa trên một thiết bị khác có phiên bản cao hơn? – Gallal
Tôi đang nói về phiên bản mục tiêu xây dựng dự án. –
nhận xét ngớ ngẩn nhưng tôi phải đối mặt với cùng một vấn đề như vậy ... bạn có đang thử bản demo trong trình giả lập với sdk 2.2 khiến thiết bị hoặc giả lập gây ra đôi khi chế độ xem không hiển thị hoàn hảo khi chạy phiên bản cao hơn cho trình mô phỏng hoặc thiết bị phiên bản thấp hơn. – MKJParekh