Android Dialog點選按鈕不關閉對話方塊
阿新 • • 發佈:2019-01-09
在Android實際開發中,我們可能常常需要彈出一個Dialog,讓使用者輸入一些資料,而對使用者的輸入資料還需要進行一些比如不能為空的驗證。但是在正常情況下,使用者點選Dialog中的按鈕後窗口會隨即關閉,使用者可能看不到你的錯誤提示,這樣會顯得很不友好。那有沒有一種解決辦法,可以讓使用者輸入出錯時單擊按鈕,繼續留在頁面而不是關閉本dialog呢?今天在做demo中剛好碰到了這個問題,下面介紹一下我的解法辦法。
首先,是一個普通的自定義dialog的程式碼引入
LayoutInflater inflater = LayoutInflater.from(this);
View dialogView = inflater.inflate(R.layout.registered_layout, null );
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(dialogView);
builder.setTitle(mRegister);
builder.setInverseBackgroundForced(true);
builder.setPositiveButton("確定", null);
builder.setNegativeButton("取消", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
final AlertDialog dialog = builder.create(); //建立對話方塊
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
});
mSendSms.setOnClickListener(new android.view.View.OnClickListener()
{
@Override
public void onClick(View v)
{
}
});
接下來,講解一下:
在
builder.setPositiveButton("確定", null);
將點選事件設定為空,因為,dialog內部程式碼,就是設定點選事件點選了之後隱藏的功能,所以我們要設定為null
接下來:
我們通過
final AlertDialog dialog = builder.create(); //建立對話方塊
獲取到dialog,接著
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
});
這樣子後,點選了就不會消失了
如果想要消失,只要在想要消失的流程間加上
dialog.dismiss();
就OK了,這樣實現還挺方便的,適合初學者們用,之前看了一個是通過Feil來查詢變數mShowing來實現對話方塊不消失的功能,試了一下,沒成功報了異常,以上方法還比較通俗易懂