Android的幾種彈出框
阿新 • • 發佈:2019-01-23
appcompat eight err alert utf 最大值 ket 1.0 創建
項目效果圖:
新建一個項目,結構圖如下所示:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:onClick="click1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="普通對話框" /> <Button android:onClick="click2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="單選對話框" /> <Button android:onClick="click3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="多選對話框" /> <Button android:onClick="click4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="進度條對話框" /> </LinearLayout>
MainActivity:
package com.demo.duihuakuang; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Build; import android.os.SystemClock; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Toast; import org.w3c.dom.Text; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click1(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("警告"); builder.setMessage("世界上最遙遠的距離是沒有網"); builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { System.out.println("點了確定"); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { System.out.println("點了取消"); } }); //一樣要show builder.show(); } //點擊按鈕彈出一個單選對話框 public void click2(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("請選擇您喜歡的課程"); final String items[] = {"android", "ios", "c", "C++", "html", "C#"}; //-1代表沒有條目被選中 builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //1.把選中的條目取出來 String item = items[which]; Toast.makeText(getApplicationContext(),item.toString(),Toast.LENGTH_LONG).show(); //2.然後把對話框關閉 dialog.dismiss(); } }); //一樣要show builder.show(); } //多選對話框 public void click3(View view) { System.out.println("點擊了"); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("請選擇你喜歡吃的水果"); final String items[] = {"香蕉", "黃瓜", "冬瓜", "哈密瓜", "梨", "柚子"}; final boolean [] checkedItems ={true,false,false,false,false,true}; builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { } }); //把選中的挑選出來 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { StringBuffer sb = new StringBuffer(); //把選中的條目的數據取出來 for (int i = 0; i <checkedItems.length ; i++) { //判斷下選中的 if(checkedItems[i]){ String fruit = items[i]; sb.append(fruit+""); } Toast.makeText(getApplicationContext(),sb.toString(),Toast.LENGTH_LONG).show(); //2.然後把對話框關閉 dialog.dismiss(); } } }); //一樣要show builder.show(); } //進度加載框 public void click4(View view) { final ProgressDialog dialog = new ProgressDialog(this); dialog.setTitle("正在玩命加載中..."); //設置一下進度條的樣式 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //創建一個子線程 new Thread(){ @Override public void run() { //設置進度條的最大值 dialog.setMax(100); //設置當前進度 for (int i = 0; i <=100 ; i++) { dialog.setProgress(i); //睡眠一會兒 SystemClock.sleep(50); } //關閉對話框 dialog.dismiss(); } }.start(); //一樣要show dialog.show(); } }
Android的幾種彈出框