對話框的幾種實現方式

對話框的幾種實現方式

佈局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
tools:context="com.example.a1_.MainActivity">

<Button
    android:id="@+id/normal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="normal"
    android:text="提示對話框" />

<Button
    android:id="@+id/progess"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="progess"
    android:text="進度條對話框" />

<Button
    android:id="@+id/single1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="single1"
    android:text="列表對話框" />

<Button
    android:id="@+id/single2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="single2"
    android:text="單選帶框對話框" />

<Button
    android:id="@+id/more"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="more"
    android:text="多選對話框" />
</LinearLayout>

核心代碼

package com.example.a1_;

import android.app.ProgressDialog;
import android.content.DialogInterface;
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;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


}

//提示對話框
public void normal(View view) {
    //創建構建器
    AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setTitle("提示對話框");
    dialog.setMessage("我是對話框內容");
    //設置對話框按鈕
    dialog.setPositiveButton("確定", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "您點擊了確定", Toast.LENGTH_SHORT).show();

        }
    });

    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "您點擊了取消", Toast.LENGTH_SHORT).show();

        }
    });

    dialog.show();
}

//進度條對話框
public void progess(View view) {
    //創建進度條對話框對象
    final ProgressDialog pd = new ProgressDialog(this);
    //設置進度條對話框內容
    pd.setTitle("我是進度條對話框");
    pd.setMessage("玩命加載中.....");
    //設置進度條樣式
    pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    pd.setMax(100);
    //設置進度條的當前進度,需要在子線程中進行
    new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i =0;i<=100;i++){
                SystemClock.sleep(30);
                pd.setProgress(i);
            }
            //當進度條加載完畢,讓進度條消失
            pd.dismiss();
        }
    }).start();
    //展示進度條
    pd.show();
}

//列表單選對話框
public void single1(View view) {
    //設置要展示的對話框內容
    final String[]data= {"java","C++","PHP","html"};
    new AlertDialog.Builder(this).setTitle("選擇你喜歡的語言")
            .setItems(data, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "你選擇了"+data[which], Toast.LENGTH_SHORT).show();
                }
            }).show();

}

//列表帶框單選對話框
public void single2(View view) {
    //設置你要學習的語言
    final String[]data = {"java","C++","PHP","html"};
    //鏈式編程
    new AlertDialog.Builder(this).setTitle("選擇你要學習的課程")
            .setSingleChoiceItems(data, 1, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "你選擇了"+data[which], Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                }
            }).show();

}

//多選對話框
public void more(View view) {
    //準備數據
    final String[]data = {"java","C++","PHP","html"};
    //創建對話框  .setCancelable(false)設置按返回鍵無法讓對話框消失
    new AlertDialog.Builder(this).setTitle("選擇你的愛好").setCancelable(false)
            .setMultiChoiceItems(data, new boolean[]{false, true, false, true}, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    if (isChecked){
                        Toast.makeText(MainActivity.this, "你選擇了"+data[which], Toast.LENGTH_SHORT).show();
                    }
                }
            })
            //設置確定按鈕
            .setPositiveButton("確定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            }).show();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章