Android對話框使用小結

--AlertDialog   
--對話框結合適配器使用
----普通使用
----設置爲單選模式
----設置爲多選模式
-------兩個數組,一個數組是item,一個數組是選擇默認哪些選項被選中
----使用自定義佈局
--對話框和菜單的結合使用

1)簡單使用

//創建對話框構建器對象
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //使用對話框構建器對象初始化對話框的屬性
        builder.setTitle("確認")
               .setMessage("是真想退出嗎?")
               .setIcon(R.drawable.ic_launcher)
               .setCancelable(false)//設置點擊對話框之外的範圍是否取消該對話框
               .setPositiveButton("是的", new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();//銷燬掉當前的Activity
                }
            })
              .setNegativeButton("不是", null);//第二個參數爲null,點擊則關閉對話框
        //生成對話框
        dialog = builder.create();

2)對話框結合適配器使用

1//對話框結合着適配器的使用
    private AlertDialog colorDialog;
    private ArrayAdapter<String> adapter;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
        adapter.add("紅色");
        adapter.add("藍色");
        adapter.add("黃色");
        colorDialog = builder.setTitle("選擇顏色對話框")
               .setIcon(R.drawable.ic_launcher)
               .setAdapter(adapter, new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    String value = adapter.getItem(which);
                    textView.setText(value);
                }
               })
               .create();

這裏寫圖片描述

3)把對話框設置單選模式

    private AlertDialog fontSizeDialog;
    private float[] fontSize={25f,30f,35f,40f,45f};
AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
        fontSizeDialog = builder2.setTitle("字體選擇對話框")
                .setIcon(R.drawable.ic_launcher)
                .setSingleChoiceItems(R.array.fontSize, 2,new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String str = getResources().getStringArray(R.array.fontSize)[which];
                        setTitle(str);
                        textView.setTextSize(fontSize[which]);
                        dialog.dismiss();//關閉對話框
                    }
                })
                .create();

這裏寫圖片描述

4)把對話框設置多選模式

private AlertDialog lovesDialog;
    private String[] hobbies= {"eat","sleep","playgame","study","run"};
    private boolean[] checked = {true,false,false,true,true};
//hobbies是對話框中的數據,checked 是每個選項的默認選擇情況
AlertDialog.Builder builder3 = new AlertDialog.Builder(this);
        lovesDialog = builder3.setTitle("選擇愛好")
                .setIcon(R.drawable.ic_launcher)
                .setMultiChoiceItems(hobbies, checked, new OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                           checked[which]=isChecked;
                    }
                })
                .setPositiveButton("確定", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        for(int i=0;i<checked.length;i++)
                        {
                            if(checked[i])
                                textView.append(loves[i]);
                        }
                    }
                })
                .create();

這裏寫圖片描述

5)使用自定義佈局的對話框

        View view = getLayoutInflater().inflate(R.layout.dialog_layout, null);
        edit_name = (EditText) view.findViewById(R.id.edit_name);
        edit_tel = (EditText) view.findViewById(R.id.edit_tel);

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        personDialog = builder.setTitle("添加人員信息對話框")
                .setIcon(R.drawable.ic_launcher)
                .setView(view)
                .setPositiveButton("確定", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String name  = edit_name.getText().toString();
                        String tel = edit_tel.getText().toString();
                        textView.append("\r\n姓名:"+name);
                        textView.append("    電話:"+tel);
                    }
                })
                .create();

最後一句:實際開發中,使用自定義佈局的比較多,所以UI設計是非常關鍵的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章