当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Android中AlertDialog四种对话框的最科学编写用法(实例代码)

    栏目:Linux/apache问题 时间:2019-11-25 16:27

    首先我们上图:

     xml的代码如下,用于编写按钮:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:andro
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    xmlns:widget="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">
      <Button
        android:
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="简单的dialog"
        />
      <Button
        android:
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="列表的dialog"
        />
      <Button
        android:
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="单选的dialog"
        />
      <Button
        android:
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="多选的dialog"
        />
    </LinearLayout>

    Java代码如下,用于实现逻辑:

    import androidx.appcompat.app.ActionBar;
    import androidx.appcompat.app.AlertDialog;
    import androidx.appcompat.app.AppCompatActivity;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    public class MainActivity extends AppCompatActivity{
      int index;
      String [] item = {"Android","IOS","Spark","Hadoop","Web"};
      boolean[] bools = {false,false,false,false,false};
      // 设置boolean数组所有的选项设置默认没选
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
          actionBar.hide();
        }
        Button button=(Button)findViewById(R.id.button_1);
        button.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setIcon(R.drawable.girl);
            builder.setTitle("标题栏");
            builder.setMessage("对话框内容,可自行设置");
            builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
              }
            });
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this, "点击了取消", Toast.LENGTH_SHORT).show();
              }
            });
            builder.setNeutralButton("好的", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this, "点击了“好的”", Toast.LENGTH_SHORT).show();
              }
            });
            AlertDialog alertDialog = builder.create();
            alertDialog.show();
          }
        });
        Button button2=(Button)findViewById(R.id.button_2);
        button2.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("请选择一个技术分支");
            builder.setItems(item, new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "选择了"+item[which], Toast.LENGTH_SHORT).show();
              }
            });
            // 取消可以不添加
            //builder.setNegativeButton("取消",null);
            AlertDialog alertDialog = builder.create();
            alertDialog.show();
          }
        });
        Button button3=(Button)findViewById(R.id.button_3);
        button3.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("请选择技术分支:");
            builder.setSingleChoiceItems(item, index, new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                index = which;
              }
            });
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "选择了"+item[index], Toast.LENGTH_SHORT).show();
              }
            });
            builder.setNegativeButton("取消",null);
            AlertDialog alertDialog = builder.create();
            alertDialog.show();
          }
        });
        Button button4=(Button)findViewById(R.id.button_4);
        button4.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("请选择技术分支:");
            builder.setMultiChoiceItems(item, bools, new DialogInterface.OnMultiChoiceClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                bools[which] = isChecked;
              }
            });
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < item.length; i++) {
                  if (bools[i]) {
                    sb.append(item[i] + " ");
                  }
                }
                Toast.makeText(MainActivity.this, "选择了" + sb.toString(), Toast.LENGTH_SHORT).show();
              }
            });
            builder.setNegativeButton("取消",null);
            AlertDialog alertDialog = builder.create();
            alertDialog.show();
          }
        });
      }
    }