android - 自定义对话框安卓

标签 android button dialog inflate

我正在尝试显示一个可自定义的对话框。此对话框包含 3 个编辑文本和一个时间选择器。当我在屏幕上按下一个按钮时,我想显示这个对话框。我查看了谷歌教程并尝试编写代码。但是,当我使用 inflater 中的根布局作为其中按下按钮的布局时,它会在按钮下添加对话框。当我在 dialog_xml 中使用根布局时,按钮不起作用。 该代码的一部分在下面。你知道我怎样才能以正确的方式做到这一点吗?

    Button ekleButton;
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.haphatirlatici);

       // After creating the activity setting other things for running
       ekleButton = (Button) findViewById(R.id.EkleButton);
       ekleButton.setOnClickListener(new View.OnClickListener() {   
       public void onClick(View v) {
            // TODO Auto-generated method stub
            // Dialog icin yerlesimler

        AlertDialog.Builder builder;
        AlertDialog alertDialog;

        Context mContext = getApplicationContext();
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.ekle_dialog,
                                       (ViewGroup) findViewById(R.id.Ekle_Layout));

        builder = new AlertDialog.Builder(mContext);
        builder.setView(layout);
        alertDialog = builder.create();

        }
    });

在此之后,我编辑代码并添加两个按钮。我想将警报对话框的结果获取到所看到的 Activity 。 我写的代码在下面。

公共(public)类 HapHatirlatici 扩展 Activity{

Button ekleButton;
boolean eklendiMi;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.haphatirlatici);

    // After creating the activity setting other things for running
    ekleButton = (Button) findViewById(R.id.EkleButton);
    eklendiMi = false;
    ekleButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // TODO Auto-generated method stub

        View layout = getLayoutInflater().inflate(R.layout.ekle_dialog, null);                               
        AlertDialog.Builder builder = new AlertDialog.Builder(HapHatirlatici.this);
        builder.setPositiveButton(R.string.ekle,new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                eklendiMi = true;
           }
        });
        builder.setNegativeButton(R.string.vazgec, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                eklendiMi = false;
           }
        });
        builder.setView(layout);
        AlertDialog alertDialog = builder.create();
        alertDialog.setTitle("Ilac Ekleme");
        alertDialog.show();


        }
    });
}
public boolean databaseEkle()
{
    boolean sonuc = false;
    return sonuc;
}

 }

最佳答案

您忘记了 alertDialog.show(); 来实际显示您刚刚构建的对话框。

此外,您的代码可以简化:

Button ekleButton;
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.haphatirlatici);

   // After creating the activity setting other things for running
   ekleButton = (Button) findViewById(R.id.EkleButton);
   ekleButton.setOnClickListener(new View.OnClickListener() {   
       public void onClick(View v) { 
           View layout = getLayoutInflater().inflate(R.layout.ekle_dialog, null);                               
           AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityClass.this);
           builder.setView(layout);
           AlertDialog alertDialog = builder.create();

           // this is what you forgot:
           alertDialog.show();
       }
    });
}

当然,将 YourActivityClass 替换为您的实际 Activity 名称。

关于android - 自定义对话框安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446206/

相关文章:

java - 如何从 Android studio 上的 textview 中删除单个元素

android - Google Maps V2 - 膨胀类 fragment 时出错

Android studio compiledsdkversion 23 不工作

css - 如何使此渐变显示在 Mac 和 Windows 上的 Chrome 上?

java - 进度对话框在 android studio 中不起作用

python - 更改 matplotlib 按钮小部件的图像

java - 如何删除另一个 JPanel 中的相同按钮?

android - 自定义样式的 AlertDialog 的样式属性

android - Android Kitkat 4.4 上的自定义对话框削减了顶部区域

android - 从通知打开对话框