2012-03-28 2 views
0

내 코드의 NegativeButton를 설정합니다 :방법은 아래에 AlertDialog.Builder unclickable

AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
dialog.setTitle("Dialog"); 

dialog.setPositiveButton("Check", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface arg0, int arg1) { 
    if(condition) { 
     //set NegativeButton unclickable 
    } else { 
     //set NegativeButton clickable 
    } 
    } // end of onClick 
}); 

dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface arg0, int arg1) { 
    //do something 
    } 
}); 

어떻게 NegativeButton 클릭하고 unclickable 설정?

try { 
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing"); 
field.setAccessible(true); 
field.set(dialog, false); 
} 
catch(Exception e) { 
e.printStackTrace(); 
} 

이는 아무것도 할 수 있지만, 여전히 클릭 : 코드 아래

... ... 

AlertDialog alertDialog = alertDialogBuilder.create(); 
alertDialog.show(); 

if(condition) { 
    //set NegativeButton unclickable 
    alertDialog.getButton(Dialog.BUTTON_NEGATIVE).setClickable(false); 
} else { 
    //set NegativeButton clickable 
    alertDialog.getButton(Dialog.BUTTON_NEGATIVE).setClickable(true); 
} 

답변

1

사용이 온 클릭의 상태를 확인하기 :

1

이보십시오.

+0

NULL 포인터 오류 – brian

+0

@ 브라이언, 아마도 alertDialog.show() 호출이 필요합니다. 먼저 대답을 업데이트했습니다. – yorkw

관련 문제