>source

간단한 DialogFragment 를 만들고 있습니다   Toast 만 표시하는 두 개의 버튼으로  두 옵션 중 하나를 선택하면 활동에서 특정 버튼 하나를 누르면이 대화 상자가 표시됩니다. 어떤 이유로 든 코드에 오류가 표시되지 않지만 버튼을 클릭하면 앱이 중단됩니다. 이 문제를 어떻게 해결합니까?

처음으로 Dialog 에 대한 사용자 정의 XML 파일 및 Java 파일을 수행하려고했습니다. 그러나 나는 그 일을 할 수 없었다. Google's documentation  다른 튜토리얼도 도움이되지 않았습니다

공개 클래스 구성, AppCompatActivity {

Button btncanc;
Button btnreestab;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_config);
    btncanc = (Button) findViewById(R.id.btncnacelset);
    btnreestab = (Button) findViewById(R.id.btnrest);
    btncanc.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            Toast toast = Toast.makeText(getApplicationContext(),"Operación cancelada",Toast.LENGTH_SHORT);
            toast.show();
            Config.this.finish();
        }
    });
    btnreestab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
            builder.setMessage("Hola");
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast toast = Toast.makeText(getApplicationContext(),"hola",Toast.LENGTH_SHORT);
                    toast.show();
                }
            });
            builder.setNegativeButton("cancela", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast toast = Toast.makeText(getApplicationContext(),"adios",Toast.LENGTH_SHORT);
                    toast.show();
                }
            });
            AlertDialog dialog = builder.create(); dialog.show();
        }
    });
}

}


  • 답변 # 1

    컨텍스트에서 스타일을 복사 할 수 있습니다. 로 알림 대화 상자를 초기화하십시오.

    new AlertDialog.Builder(Config.this)
    
    

    다른 방법으로 style.xml에서 다음과 같은 사용자 정의 스타일을 정의 할 수 있습니다

    <style name="myDialog" parent="Theme.AppCompat.Dialog">
        <item name="android:windowNoTitle">true</item>
        ...
    </style
    
    

    로 알림 대화 상자를 초기화

    AlertDialog.Builder dialog = new AlertDialog.Builder(getApplicationContext(), R.style.myDialog);
    
    
    이 충돌의 원인은 AppCompatActivity 입니다.  Theme.AppCompat이 있으므로이 테마를 사용해야합니다. 충돌을 체크 아웃하십시오.

    와이즈 비즈

    You need to use a Theme.AppCompat theme (or descendant) with this activity

  • 이전 c - 문자열 배열 할당
  • 다음 word-vba - 링크 된 이미지 링크를 업데이트 할 수 없습니다