アプリにカスタム AlertDialog を含めました。Galaxy Nexus を Jelly Bean に更新した後、ダイアログが表示されなくなりました。画面だけが暗くなります。ダイアログ周辺のプロセス (データのロードなど) は完全に機能しています。古い OS バージョンでは、コードは機能しました (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>