2009-12-29 2 views
19

맞춤형으로 만들고 싶습니다 Dialog. 나는 그 스타일이 맘에 들지 않기 때문에, 날카로운 구석이 아닌 둥근 사각형을 갖고 싶습니다.Dialog 또는 AlertDialog를 확장하여 대화 상자 사용자 정의

android:theme="@style/Theme.CustomDialog" 

그리고 Theme.CustomDialog.xml가 :

<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog"> 
     <item name="android:windowBackground">@drawable/filled_box</item> 
     <item name="android:windowNoTitle">true</item> 

filled_box.xml 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#ffffffff"/> 
    <stroke android:width="3dp" color="#ffff8080"/> 
    <corners android:radius="30dp" /> 
    <padding android:left="10dp" android:top="10dp" 
     android:right="10dp" android:bottom="10dp" /> 
</shape> 

가 어떻게이 Dialog 또는 AlertDialog을 확장하여 유사한 결과를 구현할 수 있습니다 내가 예를 들어, 내가 사용 AndroidManifest.xml에 테마에 의해 그것을 구현하는 방법을 알아?

답변

41

Dialog 호출을 확장하는 클래스의 생성자에서 super(context, R.style.CustomDialog);을 호출했습니다. 특정 테마로 사용자 지정 대화 상자를 만들 때이 작업을 여러 번했습니다.

테마 변경하려는 대화에 대한 유일한 것입니다 그러나, 당신이 바로 대화 클래스의 인스턴스를 인스턴스화 시도하고 그것을 Dialog dialog = new Dialog(context, R.style.CustomDialog);

확장 대화 상자의 예와 같은 테마 ID를 전달할 수 :

이 클래스에 추가 할 코드의 나머지 부분은 활동 클래스에서 작성하는 것과 거의 비슷합니다.

+0

네, 도와 주셔서 감사합니다 .i Dialog 대화 상자 = 새로운 Dialog (컨텍스트, R.style.CustomDialog), 매우 잘 작동합니다. 하지만 확장 대화 상자를 작성할 수 없습니다. 코드 스 니펫을 줄 수 있습니까? – pengwang

+0

확장 대화 상자의 예제를 추가했습니다. –

+0

대화 상자에서와 같이 긍정적이고 부정적인 버튼을 설정할 수 있습니까? . 내가 : 전자 .setPositiveButton ("OK", 새로운 DialogInterface.OnClickListener() { 공공 무효 온 클릭 (DialogInterface 대화, { // 긍정적 버튼) getActivityInstance() onOkClicked (GeneralDialogFragment.this를 클릭) whichButton를 int로; } } –

관련 문제