您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關常見對話框AlertDialog如何理解,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在Android應用中,有多種對話框:Dialog、AlertDialog、ProgressDialog、時間、日期等對話框。
(1)Dialog類,是一切對話框的基類,需要注意的是,Dialog類雖然可以在界面上顯示,但是并非繼承與習慣的View類,而是直接從java.lang.Object開始構造出來的,類似于Activity,Dialog也是有生命周期的,它的生命周期由Activity來維護。Activity負責生產,保存,回復它,在生命周期的每個階段都有一些回調函數供系統方向調用。
(2)AlertDialog是Dialog的一個直接子類,AlertDialog也是Android系統當中最常用的對話框之一。一個AlertDialog可以有兩個Button或3個Button,可以對一個AlertDialog設置title和message.不能直接通過AlertDialog的構造函數來生成一個AlertDialog.一般生成AlertDialog的時候都是通過它的一個內部靜態類AlertDialog.builder來構造的。
(3)顧名思義,這個Dialog負責給用戶顯示進度的相關情況,它是AlertDialog的一個子類。
本章我們著重講解一下AlertDialog!
AlertDialog的構造方法全部是Protected的,所以不能直接通過new一個AlertDialog來創建出一個AlertDialog。
要創建一個AlertDialog,就要用到AlertDialog.Builder中的create()方法。
使用AlertDialog.Builder創建對話框需要了解以下幾個方法:
setTitle :為對話框設置標題
setIcon :為對話框設置圖標
setMessage:為對話框設置內容
setView : 給對話框設置自定義樣式
setItems :設置對話框要顯示的一個list,一般用于顯示幾個命令時
setMultiChoiceItems :用來設置對話框顯示一系列的復選框
setNeutralButton :普通按鈕
setPositiveButton :給對話框添加"Yes"按鈕“確定”
setNegativeButton :對話框添加"No"按鈕 “取消”
create : 創建對話框
show :顯示對話框
一、簡單對話框
Dialog類雖然可以在界面上顯示,但是并非繼承與習慣的View類,而是直接從java.lang.Object開始構造出來的。
1、打開“src/com.genwoxue.alertdialog_a/MainActivity.java”文件。
然后輸入以下代碼:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//AlertDialog的構造方法全部是Protected的,所以不能直接通過new一個AlertDialog來創建出一個AlertDialog
//要創建一個AlertDialog,就要用到AlertDialog.Builder中的create()方法
Builder adInfo = new AlertDialog.Builder(this);
adInfo.setTitle("簡單對話框");//設置標題
adInfo.setMessage("這是一個美麗的傳說,精美的石頭會唱歌……");//設置內容
adInfo.create();
adInfo.show();//打開app就彈出這個對話框,點擊對話框外面的對話框會消失不見
}
}
2、運行,顯示界面:
二、帶按鈕的AlertDialog
我們在執行刪除、確認等操作時,常常在對話框中單擊按鈕,AlertDialog可以顯示3個按鈕。
1、打開“src/com.genwoxue.alertdialog_bMainActivity.java”文件。
然后輸入以下代碼:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("確定刪除?");
dialog.setMessage("您確定刪除該條信息嗎?");
dialog.setIcon(R.drawable.ic_launcher);
//為“確定”按鈕注冊監聽事件
dialog.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// 根據實際情況編寫相應代碼
}
});
//為“取消”按鈕注冊監聽事件
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// 根據實際情況編寫相應代碼
}
});
dialog.setNeutralButton("查看詳情", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// 根據實際情況編寫相應代碼
}
});
dialog.create();
dialog.show();
}
}
2、運行,顯示界面:
三、帶有單選按鈕、類似ListView的AlertDialog對話框
setSingleChoiceItems(CharSequence[] items, int checkedItem,final OnClickListener listener)方法來實現類似ListView的AlertDialog,第一個參數是要顯示的數據的數組,第二個參數指定默認選中項,第三個參數設置監聽處理事件。
1、打開“src/com.genwoxue.alertdialog_c/MainActivity.java”文件。
然后輸入以下代碼:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
//聲明選中項變量
private int selectedCityIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定義城市數組
final String[] arrayCity = new String[]{"杭州","紐約","威尼斯","北海道"};
//實例化AlertDialog對話框
Dialog alertDialog = new AlertDialog.Builder(this)
.setTitle("你最喜歡哪個地方")//設置標題
.setIcon(R.drawable.ic_launcher)//設置圖標
//設置對話框顯示一個單選List,指定默認選中項,同時設置監聽事件處理
.setSingleChoiceItems(arrayCity, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 選中項的索引保存到選中項變量
selectedCityIndex = which;
}
})
//添加取消按鈕并增加監聽處理
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO 自動生成的方法存根
}
})
//添加確定按鈕并增加監聽處理
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
//顯示選中的值
Toast.makeText(getApplicationContext(), arrayCity[selectedCityIndex], Toast.LENGTH_SHORT).show();
}
}).create();
alertDialog.show();//.show()必須單獨寫,不能接著上面的
}
}
2、運行,顯示界面:
四、帶有復選框、類似ListView的AlertDialog對話框
setMultiChoiceItems(CharSequence[] items, boolearn[] checkedItems,final OnMultiChoiceClickListener listener)方法來實現類似ListView的AlertDialog,第一個參數是要顯示的數據的數組,第二個參數指定默認選中項,第在個參數設置監聽處理事件。
1、打開“src/com.genwoxue.alertdialog_d/MainActivity.java”文件。
然后輸入以下代碼:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定義運動數組
final String[] arraySport = {"足球","籃球","網球","乒乓球"};
final boolean[] arraySportSelected = new boolean[]{false,false,false,false};
//實例化AlertDialog對話框
Dialog alertDialog = new AlertDialog.Builder(this)
.setTitle("你喜歡哪些運動")//設置標題
.setIcon(R.drawable.ic_launcher)//設置圖標
//設置對話框顯示一個復選List,指定默認選中項,同時設置監聽事件處理
.setMultiChoiceItems(arraySport, arraySportSelected, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// 選中項的布爾真假保存到選中項變量
arraySportSelected[which] = isChecked;
}
})
//添加確定按鈕并增加監聽處理
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
StringBuilder sb = new StringBuilder();
for(int i=0;i<arraySportSelected.length;i++){
if(arraySportSelected[i]==true){
sb.append(arraySport[i]+"、");
}
}
Toast.makeText(getApplicationContext(), sb.toString(), Toast.LENGTH_LONG).show();
}
})
//添加取消按鈕并增加監聽處理
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO 自動生成的方法存根
}
}).create();
alertDialog.show();
}
}
看完上述內容,你們對常見對話框AlertDialog如何理解有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。