2013-02-25 3 views
0

는이 코드로 대화 상자에 텍스트 뷰를 추가 해요 :Dialog에서 TextView의 테마를 설정하는 방법은 무엇입니까?

TextView alertView=new TextView(this); 
alertView.setTextAppearance(this, android.R.style.TextAppearance_Medium); 
alertView.setPadding(7, 7, 7, 7); 
alertView.setText(Html.fromHtml(alertText)); 

Dialog dialog=new Dialog(this); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(alertView); 
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
dialog.show(); 

안드로이드 4.0이 좋아 보인다. 하지만 안드로이드 2.1에서 Dialog의 배경은 검은 색이고 TextView의 텍스트도 검은 색입니다. 그것을 고치는 방법?

답변

2

Dialog의 전체 스타일을 설정하려면 리소스에 스타일을 정의하십시오.

예를 들어

:

<style name="MyDialog"> 
    <item name="android:windowNoTitle">false</item> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 

    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 

    <item name="android:windowBackground">@android:drawable/alert_light_frame</item> 
</style> 

을 한 다음 아래로 대화로 설정 :

Dialog dialog=new Dialog(this, R.style.MyDialog); 
+0

OS 버전 모두에서 잘 작동. 고마워요! – BArtWell

0

는 텍스트 뷰 화이트로 색상을 변경할 수있는 경우는 모든 버전 확인되며 블랙 컬러가 원하는 경우, 다음 문제가 있다는 것입니다 흰색

1.alertView.setTextColor(Color.WHITE); 
2.alertView.setBackgroundColor(Color.white); 
1

에 텍스트 뷰의 배경색을 변경 TextView는 대화 상자의 테마 대신 활동의 테마를 사용하고 있습니다.

당신은 텍스트 뷰의 생성자에 대화의 문맥을 통과해야합니다

Dialog dialog=new Dialog(this); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 

TextView alertView=new TextView(dialog.getContext()); 
alertView.setTextAppearance(this, android.R.style.TextAppearance_Medium); 
alertView.setPadding(7, 7, 7, 7); 
alertView.setText(Html.fromHtml(alertText)); 

dialog.setContentView(alertView); 
dialog.show();
관련 문제