2010-12-02 4 views
4

내 코드 setInverseBackgroundForced를 true로 설정했지만 작동하지 않습니다. 이 코드는 어두운 배경에 흰색 텍스트를 생성합니다. 내가 무슨 일을하고있을 수builder.setInverseBackgroundForced (true)가 작동하지 않습니다.

public class test { 
    private void createMyLocationDisabledAlert() { 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setTitle("Title") 
      .setInverseBackgroundForced(true) 
      .setMessage(
         "my message") 
         .setCancelable(false) 
         .setPositiveButton("Options", 
           new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           showOptions(); 
          } 
         }); 
      builder.setNegativeButton("Cancel", 
        new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.cancel(); 
       } 
      }); 
      AlertDialog alert = builder.create(); 
      alert.show(); 
    } 
} 

: 여기

내 빌더 코드? 코드 블록의 다른 위치에서 메서드 호출을 시도했지만 해결되지 않았습니다.

답변

0

사용자 DialogFragment를 확장하는 사용자 지정 대화 상자 클래스를 사용하여 AlertDialog를 표시합니다.

예 :

public class CustomAlertDialog extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Title") 
      .setInverseBackgroundForced(true) 
      .setMessage("my message") 
      .setCancelable(false) 
      .setPositiveButton(
       "Options", 
       new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        showOptions(); 
       } 
      }); 
     builder.setNegativeButton(
      "Cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.cancel(); 
       } 
      }); 
     AlertDialog alert = builder.create(); 
     return alert; 
    } 
} 

public class test { 
    private void createMyLocationDisabledAlert() { 
     new CustomAlertDialog().show(getSupportFragmentManager(), Constants.FragmentTagSearch); 
    } 
} 

참고 : 나는, 호환성을 위해 getSupportFragmentManager()의 따라서 사용을 지원 라이브러리를 사용했다.

0

도 오늘 같은 문제에 직면합니다. 오늘의 일이 다가옴에 따라 Android 설명서에 따르면 setInverseBackgroundForced() API가 사용되지 않으며 알림 대화 상자 테마를 사용하여 창 배경을 지정하는 것이 좋습니다.

참고 : 기능이 작동하지 않게하는 것이 이상적입니다.

즉, 오늘은 작동하지 않는 이유에 대해 조사하고 싶지 않고 안드로이드 워드 프로세서에 따라 더 깨끗하고 권장 된 방법으로 일을 처리하기 위해 포커스를 옮겼습니다. 아래 코드와 같습니다.

private final int DIALOG_THEME_STYLE = android.support.v7.appcompat.R.style.Base_Theme_AppCompat_Dialog_MinWidth; 

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, DIALOG_THEME_STYLE); 

희망이 있습니다.

관련 문제