1,今天在广播接器里写了个dialog ,结果怎么都显示不出来。啥requestFeature() must be called before adding content,啥玩意 除了坑爹想不出别的了,"
alertDialog.getWindow().setContentView(layout);//关键位置 "竟然要“alertDialog.show();”完了才能设置,醉醉的了。
AlertDialog alertDialog;
void showMsgDia(final Context context)
{
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
alertDialog = dialogBuilder.create();
LayoutInflater inflaterDl = LayoutInflater.from(context);
RelativeLayout layout = (RelativeLayout) inflaterDl.inflate(R.layout.dialog_update, null);
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();//关键位置
alertDialog.getWindow().setContentView(layout);//关键位置
// 取消按钮
Button btnCancel = (Button) layout.findViewById(R.id.btn_cancle);
btnCancel.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
alertDialog.dismiss();
Toast.makeText(context, R.string.dialog_cancle_msg, Toast.LENGTH_SHORT).show();
}
});
// 确定按钮
Button btnOK = (Button) layout.findViewById(R.id.btn_update);
btnOK.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//重启当前activity,因为activity的更新逻辑太复杂了,所以就直接重启了,然后就出现两个task,返回两次才能出来,于是乎就网上搜啊,
//基本说的差不多但是一般都解决不了问题,然后就瞎试,如下,再给activity设个启动模式android:launchMode="singleTop"就ok了。
context.startActivity(new Intent(context, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK));// 跳转立马更新
alertDialog.dismiss();
}
});
}