我在我的应用程序中包含了一个自定义的 AlertDialog。将我的 Galaxy Nexus 更新为 Jelly Bean 后,不再显示对话框。只有屏幕变暗。对话框周围的过程(如加载数据)运行良好。在较旧的操作系统版本上,代码有效(包括 ICS 4.0.4)。
无论对话框是在 AsyncTask 中还是在外部创建和显示,都会出现问题。
有没有人有类似的问题?
这是代码:
public class TLProgressDialog extends AlertDialog{
/*Log tag */
@SuppressWarnings("unused")
private static final String TAG = "TLProgressDialog";
@SuppressWarnings("unused")
private Context context;
private AnimationDrawable animation;
protected TLProgressDialog(Context context) {
super(context);
this.context = context;
}
public TLProgressDialog(Context context, boolean cancelable,
OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
this.context = context;
}
public TLProgressDialog(Context context, int theme) {
super(context, theme);
this.context = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tlprogressdialog);
ImageView img = (ImageView)findViewById(R.id.dialog_img);
img.setBackgroundResource(R.drawable.tlprogress_animation);
animation = (AnimationDrawable) img.getBackground();
img.post(new Starter());
}
public static TLProgressDialog show(Context context){
TLProgressDialog dlg = new TLProgressDialog(context);
dlg.setCanceledOnTouchOutside(false);
dlg.setCancelable(false);
dlg.show();
return dlg;
}
private class Starter implements Runnable {
public void run() {
animation.start();
}
}
}
xml 布局只是一个承载动画图像的 ImageView:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/dialog_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
</RelativeLayout>