web-dev-qa-db-ja.com

AndroidのAlertDialogにカスタムタイトルビューを含める方法は?

alertDialogにカスタムタイトルバーを含めるにはどうすればよいですか?Android sdkはsetCustomTitleメソッドを提供しますが、機能しません

編集:

    AlertDialog alert = new AlertDialog.Builder(this).setTitle("Test").setMessage("hello").show();
    View view=alert.getLayoutInflater().inflate(R.layout.titlebar, null);
    alert.setCustomTitle(view);

しかし、上記のコードは機能していません

注意 : カスタムダイアログボックスを探していませんが、タイトルレイアウトをカスタムにしたいだけです。以下のようにlike this with close Button

16
sAaNu

最初の行で.showメソッドを使用しないでください。機能する次のコードを使用してください。

AlertDialog.Builder alert = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.titlebar, null);
alert.setCustomTitle(view);
alert.setMessage("helo");
alert.show();
57
Vikram
_    DisplayDialog d = new DisplayDialog(this);
    d.show();

    public class DisplayDialog extends Dialog implements Android.view.View.OnClickListener
    {
        public DisplayDialog(Context c) 
        {
            super(c, R.style.Theme_Dialog_Translucent);
        }

        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);

            setCanceledOnTouchOutside(false);
            setContentView(R.layout.your_layout);
        }
    }
_

このスニペットを_strings.xml_に追加します

_ <style name="Theme_Dialog_Translucent" parent="Android:Theme.Dialog">
     <item name = "Android:windowBackground">@color/transparent</item>
 </style>
 <color name="transparent">#00000000</color> 
_

dismiss();を使用してダイアログを閉じます

0
KK_07k11A0585