如何使用AppCompat Dialog

如何使用AppCompat Dialog

有時候因為版本關係, 在使用AlertDialog的時候,
會覺得新版本的AlertDialog很漂亮,
其實可以利用Theme來改變新版本的AlertDialog。

new AlertDialog.Builder(MainActivity.this, R.style.Theme_AppCompat_Light_Dialog_Alert)
    .setTitle("刪除xxx")
    .setMessage("確定要刪除?")
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, R.string.ok, Toast.LENGTH_SHORT).show();
        }
    })
    .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, R.string.cancel, Toast.LENGTH_SHORT).show();
        }
    })
    .show();

首先可以看到做法相同,
只是在呼叫AlertDialog的時候,
原本只要傳入Activity物件要多傳一個Theme,

new AlertDialog.Builder(MainActivity.this, R.style.Theme_AppCompat_Light_Dialog_Alert)

接著import要透過support.v7這包。

import android.support.v7.app.AlertDialog;

這樣一來, 就算在4.x版本的手機上,
也可以看到漂亮的AlertDialog了。


原本醜醜的AlertDialog


變成新版的AlertDialog

程式碼
github