AlertDialog의 테마는 어떻게 바꿀까요?
조회수 7056회
커스텀 AlertDialog를 만드려고하는데요. styles.xml 에 아래 코드를 추가했어요.
@drawable/color_panel_background
color_panel_background.9.png 를 drawable폴더에 넣고. 안드로이드 SDK의 res폴더에도 있어요.
mainActivity에서
package com.customdialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
public class CustomDialog extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.setTheme(R.style.CustomAlertDialog);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("HELLO!");
builder .setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//MyActivity.this.finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//dialog.cancel();
}
});
AlertDialog alertdialog = builder.create();
alertdialog.show();
}
}
현재 context에 테마를 설정해서 AlertDialog에 테마를 적용했는데
앱에서는 커스텀 AlertDialog가 나오지 않아요. 어떻게 해야할까요?
1 답변
-
Dialog.java에서 ContextThemeWrapper를 사용하세요.
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.AlertDialogCustom));
이런식으로요. 그리고 스타일은
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AlertDialogCustom" parent="@android:style/Theme.Dialog"> <item name="android:textColor">#00FF00</item> <item name="android:typeface">monospace</item> <item name="android:textSize">10sp</item> </style> </resources>
이런 식으로 원하는 스타일을 지정해주세요.
댓글 입력