在活动启动时隐藏对话框标题

时间:2013-09-09 09:43:16

标签: android android-dialog android-lifecycle

我有一个弹出式对话框,需要在活动开始时显示。要在启动时启动弹出窗口,我将其放在 onStart()上。这工作正常,但它在弹出对话框中显示空白标题。要删除它,我尝试了dialog.requestWindowFeature(dialog.getWindow().FEATURE_NO_TITLE);
但这个获取和运行时异常。下面是OnStart()方法:

@Override
    protected void onStart()
    {
        super.onStart();
        final Dialog dialog = new Dialog(this);
        dialog.setContentView(R.layout.popup_layout);
        dialog.requestWindowFeature(dialog.getWindow().FEATURE_NO_TITLE); 

        Button mYes = (Button) dialog.findViewById(R.id.button1);
        Button mNo = (Button) dialog.findViewById(R.id.button2);
        mYes.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "msg1", Toast.LENGTH_LONG).show();
                finish();

            }
        });
        mMoveToWallet.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "msg2", Toast.LENGTH_LONG).show();
                dialog.cancel();

            }
        });

        dialog.show();
    }

例外: android.util.AndroidRuntimeException: requestFeature must be called before adding to the content. 请帮帮我。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

尝试使用此对话框

final Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar);

删除此

dialog.requestWindowFeature(dialog.getWindow().FEATURE_NO_TITLE); 

<强>更新

尝试此风格

final Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

更新2:
将以下样式添加到style.xml并在对话框声明中使用它

<style name="NoTitleDialog" parent="android:style/Theme.Dialog">
      <item name="android:windowNoTitle">true</item>
 </style>

这是正确的,因为它扩展了android的Theme.Dialog风格。

答案 1 :(得分:0)

试试这段代码,

requestWindowFeature(Window.FEATURE_NO_TITLE);

答案 2 :(得分:0)

dialog.requestWindowFeature(dialog.getWindow().FEATURE_NO_TITLE);

将此行保留在setContentView方法之前。