2011-02-11 6 views
7

EULA 화면과 같은 경고 대화 상자가 표시됩니다. "다시 표시하지 않음"확인란과 확인 및 취소를 위해 2 개의 단추가있는 EULA를 설명하는 텍스트가 표시됩니다.확인란과 두 개의 버튼이있는 경고 대화 상자

동일한 도움말은 감사하겠습니다.

경고 대화 상자의 일부로 textview 및 checkbox를 사용할 수 있습니까? 그렇다면 어떻게해야합니까? 모든 샘플 코드는 높이 평가됩니다. 내가 Mudassir에 동의해야

고마워요 & 관련, 만주

+3

EULA에는 '다시 표시하지 않음'이 없습니다. 하단의 동의 및 동의하지 않음 버튼 만 제공하십시오. 프로그램의 일부 메뉴에 EULA에 대한 링크를 넣어 사용자가 언제든지 볼 수 있도록하십시오. – Mudassir

+0

또한 이것이 EULA를위한 최상의 설계 솔루션이 아닌 경우, 선택적으로 추가 작업을 수행 할 수있는 다른 대화 상자에 필요할 수 있습니다. –

답변

15

는 EULA를 체크 박스 "를 다시 표시 안 함"을 가지고 가정, 그러나 여기 당신이 그래도 그런 일을에 대해 갈 수있는 방법은 없습니다.

AlertDialog.Builder를 사용하여 XML로 디자인 할 수있는보기가 포함 된 대화 상자를 빌드 할 수 있습니다. 예제가 있습니다

AlertDialog.Builder eulaBuilder = new AlertDialog.Builder(this); 
      LayoutInflater eulaInflater = LayoutInflater.from(this); 
      View eulaLayout = eulaInflater.inflate(R.layout.eula, null); 
      eulaBuilder.setView(eulaLayout); 
      Checkbox dontShowAgain = (CheckBox)eulaLayout.findViewById(R.id.dontShowAgain); 
      eulaBuilder.setPositiveButton("Agree", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface d, int m) { 
        // Do something 
       } 
      });   
      eulaBuilder.setNegativeButton("Disagree", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface d, int m) { 
        // Do something 
       } 
      }); 
      eulaMsg = eulaBuilder.create(); 

하나의 객체로 CheckBox를 사용하여 XML을 만들면됩니다. 그런 다음보기를 AlertDialog.Builder에 추가하십시오. AlertDialog.Builder.setMessage ("EULA message here")를 사용하여 EULA 메시지를 설정하십시오.

+0

이 솔루션은 한 줄 eulaBuilder.setView (eulaLayout)가 없다고 생각합니다. – Juhani

3
이 두 가지 방법에서

봐 :

1) 더 간단하고 매우 빠른 첫 번째 방법 :

CheckBox checkBox = new CheckBox(this); 
checkBox.setText("This is your checkbox message"); 
LinearLayout linearLayout = new LinearLayout(this); 
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, 
         LinearLayout.LayoutParams.FILL_PARENT)); 
linearLayout.setOrientation(1);  
linearLayout.addView(checkBox); 

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
alertDialogBuilder.setView(linearLayout); 
alertDialogBuilder.setTitle("This is the title of alert dialog"); 
alertDialogBuilder.setMessage("This is the message of alert dialog"); 
alertDialogBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface arg0, int arg1) { 
      // do something 
    } 
}); 
alertDialogBuilder.show(); 

2) 두 번째 방법보다 사용자 정의 레이아웃 :

모양이 page이면 확인란을 만들 XML 코드도 있습니다.

+0

많은 시간이 지났지 만 첫 번째 방법에서 AlertDialog 내부의 체크 박스 값을 얻는 방법을 기억할 수 있습니까? –

+0

"onClick"안에있는 체크 박스 (이전에는 최종라고 표시됨)를 사용할 수 있습니다. 따라서 "isChecked()"메서드를 사용할 수 있고 ok!를 실행합니다. 감사! –

관련 문제