編輯:關於Android編程
android提供了四類常用的對話框,本文分享具體實現方法:
這裡主要介紹第一種,剩下的三種都是第一種的子類,所以其方法,都可以直接使用.
創建一個對話框一般需要下面幾個步驟
下面根據實例一起來看看具體用法
1、簡單文本對話框
定義一個Button為其添加點擊事件,從而啟動AlertDialog對話框,並添加監聽事件
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();
}

2、列表項對話框
和上面的文本對話框不同,列表像是通過一個數組來顯示列表
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();
}

3、單選項對話框
和列表項差不多,但是功能足足強了好多,因為傳入的參數可以為數組,也可以是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();
}

4、多選項對話框
多選和單選差不多,就多了個Boolean的數組來控制初始選擇值
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的對話框。
以後的實例中會逐漸都應用到的,希望大家繼續關注。
百度專車怎麼收費 百度專車車型收費是怎樣的
百度專車車型收費是怎樣的?百度專車強勢來臨,在目前國內專車市場裡,多一個競爭對手必然帶來新一輪的專車優惠。那麼很多人都關心百度專車有哪些車型,收費分別是多少
Android 客戶端與服務端JSP相互傳遞中文
為了兼容簡體、繁體及其他語系,推薦使用UTF-8編碼。 首選,我們看看Android端應該怎麼做: 在發送前,應該對參數值要進行UTF-8編碼,我寫了一個s
Android卸載程序之後跳轉到指定的反饋頁面
今天去面試,一面還可以,到了第二面的時候也差不多吧,最後來了一題,說那個360被卸載之後會跳轉到指定的反饋頁面,是怎麼弄的?這個之前沒有研究過,但是這個效果是見過的。當時
Android仿網易一元奪寶客戶端下拉加載動畫效果(一)
上上周寫的一個demo,仿照網易一元奪寶的下拉刷新效果。原效果是(第一部分)一個小太陽拉下來,然後松開回彈上去,(第二部分)再掉下來一個硬幣進行中軸旋轉。本文實現的效果的