--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設計是非常關鍵的。