1. 程式人生 > 程式設計 >Android中AlertDialog四種對話方塊的最科學編寫用法(例項程式碼)

Android中AlertDialog四種對話方塊的最科學編寫用法(例項程式碼)

首先我們上圖:

xml的程式碼如下,用於編寫按鈕:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
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:id="@+id/button_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="簡單的dialog"
    />
  <Button
    android:id="@+id/button_2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="列表的dialog"
    />
  <Button
    android:id="@+id/button_3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="單選的dialog"
    />
  <Button
    android:id="@+id/button_4"
    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};
  // 設定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("好的","點選了“好的”",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,"選擇了"+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,int which) {
            index = which;
          }
        });
        builder.setPositiveButton("確定","選擇了"+item[index],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("確定",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(),null);
        AlertDialog alertDialog = builder.create();
        alertDialog.show();
      }
    });
  }
}

總結

以上所述是小編給大家介紹的Android中AlertDialog四種對話方塊的最科學編寫用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!