如何在android中创建上面的自定义对话框?

时间:2011-05-09 05:48:23

标签: java android xml dialog

有人能告诉我如何创建与链接[here] [1]相似/完全相同的上述对话视图,问题的焦点是在图片的中心创建视图吗?

我做了一些研究,这让我想知道我应该使用自定义xml来创建自定义对话框视图,还是应该使用alertdialog来创建上面显示的精确视图可编程性?即使alertdialog是可能的,我如何容纳如此多的textview消息显示在对话框图片中间给出alertdialog限制?例如:“builder.setMessage(”这是警报的正文“);”如果你知道我的意思!!

有人能告诉我最简单的方法来获得完全相同的视图,因为我是kinna做相同的应用程序和新的Android ..谢谢:)

2 个答案:

答案 0 :(得分:1)

尝试以下代码

Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Alert !");
builder.setMessage("your text here");
builder.setPositiveButton("Show Video", new DialogInterface.OnClickListener()
{
    @Override
    public void onClick(DialogInterface dialog, int which)
    {
        connect = false;
    }
});
builder.setNegativeButton("Show Map", new DialogInterface.OnClickListener()
{

@Override
public void onClick(DialogInterface arg0, int arg1)
{
    // TODO Auto-generated method stub                      
}
});
builder.setNeutralButton("Show Both", new DialogInterface.OnClickListener()
{

@Override
public void onClick(DialogInterface arg0, int arg1)
{
    // TODO Auto-generated method stub                      
}
});
builder.show();

更新:要显示自定义标题,请使用以下代码创建布局并对其进行充气

LayoutInflater mInflater = LayoutInflater.from(mContext);
View layout = mInflater.inflate(R.layout.popup_example, null);

从上面的代码中删除以下行

builder.setTitle("Alert !");

然后使用

设置
builder.setCustomTitle(layout)

答案 1 :(得分:1)

最好的方法是自定义对话框。因为它将有助于创建所有这些背景颜色和效果。我确定你发布的链接也在使用自定义对话框,

欢呼声

可能会有所帮助的链接:

[1] http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog

[2] http://androidideasblog.blogspot.com/2010/02/creating-custom-dialog-in-android.html

///在您的代码实现中,只需在创建对话框时添加此代码....在此之后,只需在您的布局中安排所有TextView并将此布局ID添加到此代码中,祝好运

//Dialog box creator
private Dialog constructYourDialog()
{
    //Preparing views
  LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
  View layout = inflater.inflate(R.layout.***your_xml_name***, (ViewGroup) findViewById(R.id.***Yout view id***));
    //Building dialog
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(layout);

    builder.setPositiveButton("Show Videos", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
                Log.i("","Show Video Click");
                dialog.dismiss();
    });
    builder.setNegativeButton("E-Mail", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
           Log.i("","E-mail Click");
           dialog.dismiss();
        }
    });
     builder.setNeutralButton("Show Map", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Log.i("","Show Map Click");
            dialog.dismiss();
        }
    });
          AlertDialog alert = builder.create();
    return alert;

}