java - Android - 点击alertDialog内的按钮

标签 java android

我想知道如何在 Android 中单击 AlertDialog 内的按钮,这是我的代码

activity_float_info.xml

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:id="@+id/button" />

MainActivity.java

 QR_ = LayoutInflater.from(MainActivity.this).inflate(R.layout.activity_float_info, null);
        MAIN_QR_SCAN = (LinearLayout) findViewById(R.id.MAIN_QR_SCAN);

        MAIN_QR_SCAN.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new AlertDialog.Builder(MainActivity.this)
                        .setCancelable(Boolean.TRUE)
                        .setNegativeButton(getString(R.string.CANCEL), new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                dialogInterface.dismiss();
                            }
                        })
                        .setView(R.layout.activity_float_info)
                        .show();

                button = (Button)QR_.findViewById(R.id.button);
                button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        button.setText("TEst");
                    }
                });
            }
        });

我已经膨胀了布局.. 我认为主要问题在于

button = (Button)QR_.findViewById(R.id.button);

最佳答案

尝试为对话框创建一个布局

<TextView android:id="@+id/dialogtitle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textColor="@android:color/black"
    android:text="Please enter the email address you used for the account"
    />
<EditText
    android:id="@+id/emailedittext"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:ems="10"
    android:padding="5dp"
    android:cursorVisible="true"
    android:singleLine="true"
    android:background="@android:color/white"
    android:textColor="@android:color/black"
    android:hint="Enter Mail id"
    android:textSize="20dp" >
    <requestFocus />
</EditText>

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:weightSum="2"
    android:orientation="horizontal">

     <Button 
        android:id="@+id/cancelbtn"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="CANCEL"/>

      <Button 
        android:id="@+id/okbtn"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Ok"/>
</LinearLayout>

然后使用此布局创建一个对话框并处理按钮单击

final Dialog dialog = new Dialog(MainActivity.this);
      // Include dialog.xml file
      dialog.setContentView(R.layout.forgotpassword);
      // Set dialog title
      dialog.setTitle("ALERT!!");
      // set values for custom dialog components - text, image and button
      Button okbtn = (Button) dialog.findViewById(R.id.okbtn);
      Button cancelbtn = (Button) dialog.findViewById(R.id.cancelbtn);
      final EditText emailedittext = (EditText) dialog.findViewById(R.id.emailedittext);
      dialog.show();
      dialog.getWindow().setSoftInputMode(
              WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
      // if decline button is clicked, close the custom dialog
      cancelbtn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              // Close dialog
              dialog.dismiss();
          }
      });
      okbtn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              String email=emailedittext.getText().toString();
              //do something more here
          }
      });

引用:https://coderzpassion.com/android-show-alertdialog/

关于java - Android - 点击alertDialog内的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38867002/

相关文章:

java - Oracle 存储过程在 Linux 上运行时失败,在 Windows 上工作

Android 应用从/drawables-nodpi/with scaling 加载图片

android - 如何在 Android 中将外部 jar 文件包含到 aar 文件中

java - 调用由 SWIG 生成的 JNI 的 UnsatisfiedLinkError?

java - Spinner if else 语句

java - JPanel 内的 JFileChooser;如何让用户选择

java - 在 Android 中创建 PDF 缩略图

android将数据库从内部存储复制到外部存储返回空数据库

android - 具有多种选择和自定义 View 的对话框

java - 自定义标记器 solr 仅在第一次调用