AlertDialog教學用


在做一個AlertDialog常用到的語法

setTitle:為對畫框設定標題
setIcon:為對畫框設定圖片
setMessage:設定對畫框的內容
setView:自行定義對畫框的樣式
setItems:為對畫框設定一個多選項的對話筐(類似Spinner)
setMultiChoiceItem:在對畫框中設定一系列的復選匡(類似CheckBox)
setNeutraButton:設定一個按鈕
setPositiveButton:在對畫框中設定一個“ok”的按鈕
setNegativeButton:在對畫框中設定一個“no”的按鈕
create:建立對畫框
show:顯示對畫框

建立一個簡單的Dialog

 new AlertDialog.Builder(MainActivity.this)
                        .setIcon(R.drawable.ic_launcher)
                        .setTitle("一個Dialog")
                        .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {


大量訊息Dialog

 new AlertDialog.Builder(MainActivity.this)
                        .setIcon(R.drawable.ic_launcher)
                        .setTitle("大量訊息")
                        .setMessage("這裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有" +
                                "很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息這" +
                                "裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息這裡有很多訊息")
                        .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        })
                        .setNegativeButton("cancel",null)
                        .setNeutralButton("第三按鈕",null).create()
                        .show();


單一選單Dialog 首先要在Values建立一個新的XML(這邊我叫Arrays)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="dialog_arrays">
        <item>第一個</item>
        <item>第二個</item>
        <item>第三個</item>
        <item>第四個</item>
        <item>第五個</item>

    </string-array>

</resources>

再來在Main裡面寫下代碼

      btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new AlertDialog.Builder(MainActivity.this)
                        .setIcon(R.drawable.ic_launcher)
                        .setTitle("單項選擇Spinner")
                        .setItems(R.array.dialog_arrays, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                String[] Item=getResources().getStringArray(
                                        R.array.dialog_arrays
                                );
                                Toast.makeText(MainActivity.this,""+which+","+
                                        Item[which],Toast.LENGTH_LONG).show();
                            }
                        }).create().show();


ProgressDialog

剛開始需要寫一個Handler,設定ProgressDialog跑的速度

handler = new Handler() {  
    @Override  
    public void handleMessage(Message msg) {  
        super.handleMessage(msg);  
        if (mProgress >= 100) {  
            pDialog.dismiss();  
        } else {  
            mProgress++;  

            pDialog.incrementProgressBy(1);  

            handler.sendEmptyMessageDelayed(0, 100);

這邊先設定ProcessDialog

 pDialog = new ProgressDialog(MainActivity.this);
                pDialog.setIcon(R.drawable.ic_launcher);
                pDialog.setTitle("進度條Dialog");
                pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                pDialog.setMax(100);

執行完OnClickListener之後發一個訊息給handler

pDialog.setProgress(0);  
        pDialog.show();  
        mProgress = 0;  

        handler.sendEmptyMessage(0);


用Layout去做Dialog

先建立一個Layout來當作Dialog 裡面我只放了EditeText和一個按鈕

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/textView" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ok"
        android:id="@+id/button2" />
</LinearLayout>

然後在main裡面建立LayoutInFlater

LayoutInflater inflater=LayoutInflater.from(MainActivity.this);
                final View popView= inflater.inflate(R.layout.items,null);
                final AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                builder.setView(popView);
                final AlertDialog dialog=builder.create();
                dialog.show();

就成功建立了用Layout去做Dialog的功能

results matching ""

    No results matching ""