본문 바로가기

나의 플랫폼/안드로이드

[Android] AppCompatDialog 사용하기

AppCompatDialog 를 사용하는 방법을 공유하고자 합니다.


styles.xml 에 아래와 같이 Dialog Style를 커스텀화 할 수 있습니다.


<style name="MyTitleTextStyle">
<item name="android:textColor">@color/black</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>


<style name="Dialog" parent="Theme.AppCompat.Dialog">
<item name="android:windowBackground">@color/color_primary</item> <!--Dialog background-->
<item name="android:textColorPrimary">#FFFFFF</item> <!--content text color-->

<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item> <!--title text style-->

<item name="colorAccent">@color/color_accent</item> <!--Button text color-->
<item name="android:windowNoTitle">false</item>
<item name="android:windowIsFloating">true</item>
</style>

## 윗부분에서 중요한 부분이 windowNoTiltle 속성을 true로 놓게 되면 Dialog에 Title을 설정 하더라도 

    보이지 않습니다. 참고 하세요.



final AlertDialog.Builder builder;
builder = new AlertDialog.Builder(activity, R.style.Dialog);
builder.setTitle("여기는 타이틀");
builder.setMessage("여기는 메세지");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// OK 버튼을 눌렀을 때
}
});
builder.setNegativeButton("Cancel",null);
AppCompatDialog dialog = builder.create();
dialog.show();


이렇게 하면 끝입니다^^


아래와 같이 할수도 있으니 참고 하세요^^ (이 부분도 수정하게 되면 올리겠습니다.)

private void showSimpleDialogWithActionBar() {
    AppCompatDialog dialog = new MenuDialog(this);
    // Request the support Action Bar window feature
    dialog.supportRequestWindowFeature(WindowCompat.FEATURE_ACTION_BAR);
    dialog.setTitle(R.string.dialog_title);
    dialog.setContentView(R.layout.dialog_content);
    dialog.show();
}