我在我的应用中添加了自定义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>
答案 0 :(得分:0)
您是否取消选中了应用的“显示通知”? (在“设置/ apps /”和“显示通知”中查看)。
答案 1 :(得分:0)
我的错,发现我已经为动画添加了GIF。这似乎不再起作用了。转换为PNG之后,它再次发挥作用。