android提供了四類經常使用的對話框
1.AlertDialog,功能最豐富,實際運用最普遍
2.progressDialog,進度條對話框
3.DatePickerDialog,日期選擇對話框
4.TimePickerDialog,時間選擇對話框
這裏主要介紹第一種,剩下的三種都是第一種的子類,因此其方法,均可以直接使用.php
建立一個對話框通常須要下面幾個步驟 1.建立AlertDialog.Builder對象 2.對AlertDialog.Builder經過SetTitle來設置標題,SetIcon來設置圖標 3.調用AlertDialog.Builder相關方法來設置內容 4.調用setPositiveButton或者setBegativeButton設置肯定和取消按鈕,其中還一個裝飾性按鈕,就不介紹了 5.調用AlertDialog.Builder的create方法進行建立,再調用AlertDialog的show方法便可顯示出來.
下面根據實例一塊兒來看看具體用法java
定義一個Button爲其添加點擊事件,從而啓動AlertDialog對話框,並添加監聽事件android
public void simpledialog1(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(this)
//設置對話框標題
.setTitle("簡單文本對話框")
//設置圖標
.setIcon(R.mipmap.ic_launcher)
//設置爲簡單文本對話框
.setMessage("這是一個簡單文本對話框");
//設置兩個按鈕
builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
和上面的文本對話框不一樣,列表像是經過一個數組來顯示列表ios
public void simpledialog2(View view){
//列表項須要傳入一個數組用於顯示列表
final String items[] = {"java","php","android","ios"};
AlertDialog.Builder builder = new AlertDialog.Builder(this)
//設置對話框標題
.setTitle("簡單列表項對話框")
//設置圖標
.setIcon(R.mipmap.ic_launcher)
//設置爲簡單列表項對話框
.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你點擊了" + items[which], Toast.LENGTH_SHORT).show();
}
});
//設置兩個按鈕
builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
和列表項差很少,可是功能足足強了好多,由於傳入的參數能夠爲數組,也能夠是Cursor的查詢結果集,還可使ListAdapter數組
public void simpledialog3(View view){
//列表項須要傳入一個數組用於顯示列表
final String items[] = {"java","php","android","ios"};
AlertDialog.Builder builder = new AlertDialog.Builder(this)
//設置對話框標題
.setTitle("簡單列表項對話框")
//設置圖標
.setIcon(R.mipmap.ic_launcher)
//設置爲簡單單選列表項對話框,1表示默認選擇第二個
.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你點擊了" + items[which], Toast.LENGTH_SHORT).show();
}
});
//設置兩個按鈕
builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
多選和單選差很少,就多了個Boolean的數組來控制初始選擇值markdown
public void simpledialog4(View view){
//列表項須要傳入一個數組用於顯示列表
final String items[] = {"java","php","android","ios"};
AlertDialog.Builder builder = new AlertDialog.Builder(this)
//設置對話框標題
.setTitle("簡單列表項對話框")
//設置圖標
.setIcon(R.mipmap.ic_launcher)
//設置爲簡單多選列表項對話框,boolean型變量表示初始選擇的位置
.setMultiChoiceItems(items, new boolean[]{false, false, false, true}, null);
//設置兩個按鈕
builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
另外還可使用SetAdapter方法制做自定義列表項的對話框 或者使用SetView來製做自定義View的對話框 之後的實例中會逐漸都應用到的,但願你們繼續關注
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。ide