安卓開發之對話框

package com.lidaochen.test001;

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.util.Log;
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 click1(View v)
    {
        // 經過Builder構建器來構造
        // 下面的參數上下文 對話框裏面通常都用this
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("提示");
        builder.setMessage("我是你永遠得不到的爸爸!");
        // 設置取消按鈕
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.e("dialog", "點擊了取消按鈕");
            }
        });
        // 設置肯定按鈕
        builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.e("dialog", "點擊了肯定按鈕!");
            }
        });
        // 和Toast同樣 最後必定要show 出來
        builder.show();
    }
    // 點擊按鈕彈出一個單選對話框
    public void click2(View v)
    {
        // 經過Builder構建器來構造
        // 下面的參數上下文 對話框裏面通常都用this
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("請選擇您喜歡的課程");
        final String items[] = {"Android", "ios", "C", "C++", "Java", "Python", "C#"};
        // -1 表明沒有條目被選中
        builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 把選擇的條目取出來
                String item = items[which];
                Toast.makeText(getApplicationContext(), item, Toast.LENGTH_SHORT).show();
                // 關閉對話框
                dialog.dismiss();
            }
        });
        // 和Toast同樣 最後必定要show 出來
        builder.show();
    }
    // 點擊按鈕彈出一個多選對話框
    public void click3(View v)
    {
        // 經過Builder構建器來構造
        // 下面的參數上下文 對話框裏面通常都用this
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("請選擇您喜歡吃的水果");
        final String items[] = {"蘋果", "香蕉", "梨", "哈密瓜", "西瓜", "荔枝", "芒果"};
        final boolean[] checkItems = {true, false, false, false, false, false, true};
        builder.setMultiChoiceItems(items, checkItems, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                Log.e("dialog", items[which]);
            }
        });
        // 設置肯定按鈕
        builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                StringBuffer sb = new StringBuffer();
                // 把選中的條目的數據取出來
                for(int i = 0; i < checkItems.length; i++)
                {
                    // 判斷一下選中的
                    if (checkItems[i])
                    {
                        String fruit = items[i];
                        sb.append(fruit + " ");
                    }
                }
                Toast.makeText(getApplicationContext(), sb.toString(), Toast.LENGTH_SHORT).show();
                // 關閉對話框
                dialog.dismiss();
            }
        });
        // 和Toast同樣 最後必定要show 出來
        builder.show();
    }
    // 點擊按鈕彈出一個多選對話框
    public void click4(View v)
    {
        final ProgressDialog dialog = new ProgressDialog(this);
        dialog.setTitle("正在玩命加載ing");
        // 設置一下進度條的樣式
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        // 和Toast同樣 最後必定要show 出來
        dialog.show();
        // 建立一個子線程
        new Thread()
        {
            public void run()
            {
                // 設置進度條的最大值
                dialog.setMax(100);
                // 設置當前進度
                for(int i = 0; i < 100; i++)
                {
                    dialog.setProgress(i);
                    SystemClock.sleep(100);
                }
            };
        }.start();
    }
}
相關文章
相關標籤/搜索