Android中AlertDialog的使用
AlertDialog的簡單使用
AlertDialog的使用是依賴於Activity的。它不同於Toast,Toast是不依賴於Activity的,Toast只起到一種提示作用,並無法進行互動。而AlertDialog是可以進行互動的,不僅可以起到提示作用,還可以用來進行選擇等,下面我們來看看它的用法。
我們通過一個按鍵的點擊來觸發AlertDialog:
//首先建立一個AlertDialog.Builder的對象。 AlertDialog.Builder builder = new AlertDialog.Builder(DialogActivity.this); //設定圖片 builder.setIcon(R.mipmap.ic_launcher); //設定題目 builder.setTitle(Title); //設定內容 builder.setMessage(This is a Dialog!); //設定按鍵NegativeButton(在最左邊) builder.setNegativeButton(Cancle, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(getApplicationContext(), NegativeButton, Toast.LENGTH_SHORT).show(); } }); //設定按鍵NeutralButton(在中間) builder.setNeutralButton(Neutral, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(getApplicationContext(), NeutralButton, Toast.LENGTH_SHORT).show(); } }); //設定按鍵PositiveButton(在最右邊) builder.setPositiveButton(OK, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(getApplicationContext(), PositiveButton, Toast.LENGTH_SHORT).show(); } }); //建立AlertDialog 對象。 AlertDialog dialog =builder.create(); //調用show()方法顯示。 dialog.show();
選擇型的AlertDialog
通過彈出AlertDialog,在AlertDialog中選擇想要的內容,點擊後直接退出AlertDialog。
//首先建立一個AlertDialog.Builder的對象。 AlertDialog.Builder builder =new AlertDialog.Builder(DialogActivity.this); //設定題目 builder.setTitle(Title); //設定選擇的內容:第一個參數是資料, 第二個參數是點擊事件。 builder.setItems(mData, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(getApplicationContext(), 點擊第 + (i + 1) + 資料, Toast.LENGTH_SHORT).show(); } }); AlertDialog dialog =builder.create(); dialog.show();
資料設定為:
private String[] mData={This is Item1, This is Item2, This is Item3, This is Item4};
單選擇的AlertDialog
通過彈出AlertDialog,在AlertDialog中選擇想要的內容,點擊定義的NegativeButton,NeutralButton或者PositiveButton按鈕後退出,我們可以通過在NeutralButton或者PositiveButton按鈕中定義相關操作提交資料,NegativeButton則是不對資料做處理直接退出。注意:單選擇的AlertDialog只能選擇一項。
AlertDialog.Builder builder = new AlertDialog.Builder(DialogActivity.this); builder.setTitle(Title); //設定單選則的選項 builder.setSingleChoiceItems(mSexs, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { mSex = mSexs[which]; Toast.makeText(getApplicationContext(), 您選擇的性別是 + mSexs[which], Toast.LENGTH_SHORT).show(); } }); //取消按鈕,點擊後不對資料做處理。 builder.setNegativeButton(Cancle, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); //確定按鈕,點擊後將資料顯示在EditText中。 builder.setNeutralButton(OK, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { mEditTextSex.setText(mSex); } }); builder.show();
補充資料定義:
private String[] mSexs={男, 女, 其他}; private String mSex;
多選擇的AlertDialog
通過彈出AlertDialog,在AlertDialog中選擇想要的內容,點擊定義的NegativeButton,NeutralButton或者PositiveButton按鈕後退出,我們可以通過在NeutralButton或者PositiveButton按鈕中定義相關操作提交資料,NegativeButton則是不對資料做處理直接退出。注意:多選擇的AlertDialog可以選擇多項。
AlertDialog.Builder builder = new AlertDialog.Builder(DialogActivity.this); builder.setTitle(Title); //設定多選擇項。 builder.setMultiChoiceItems(mHobby, mIsCheckedManager, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which, boolean isChecked) { mIsCheckedManager[which] = isChecked; } }); builder.setNegativeButton(Cancle, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); builder.setNeutralButton(OK, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { hobby = new StringBuffer(); for (int i=0; i
補充資料定義:
private String[] mHobby={唱歌, 學習, 讀書, 打籃球, 跑步, 運動}; private boolean[] mIsCheckedManager=new boolean[mHobby.length]; private StringBuffer hobby;