2013-04-19 2 views
9

을 변경 나는 그것을 닫지 않고에 AlertDialog 메시지를 변경하려면 잠시 후에 AlertDialog새로 고침 또는이에 AlertDialog 메시지

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
... 
AlertDialog alert = builder.create(); 
alert.show(); 

을 만들 수 있습니다.

가능합니까?

답변

6

예, 가능합니다.

예를 들어, 자신 만의 레이아웃으로 자신 만의 대화 상자를 만들면 각보기에 대한 ID를 설정 한 다음 각보기 (예 : textView)에 액세스하여 원하는 경우 언제든지 새 텍스트를 설정할 수 있습니다 에.

+0

나를 위해 그것은 작동하지 않습니다 : 사용하여'TextView messageView = (TextView) dialog.findViewById (android.R.id.message); messageView.setText ("MyText");'는 dialog.show()를 호출 한 후에 텍스트를 변경하지 않습니다. – user905686

+0

다시, 나는 "당신 자신의 레이아웃으로"썼다. 다른 솔루션의 경우 제대로 작동하지 않을 수 있습니다. –

10

android 개발자와 합의하십시오. 당신은 또한에 AlertDialog의 messageTextView에 대한 제어를 얻으려면

TextView messageView = (TextView)alert .findViewById(android.R.id.message); 

를 사용할 수 있습니다. 그런 다음 새 텍스트를 설정할 수 있습니다.

+0

이 방법을 사용해 보셨습니까? – stinepike

+1

이것은 작동하지 않습니다. @ Danger의 답변이 정확하고 좋네요. 단지 builder.setMessage() 대신 alert.setMessage()를 사용하십시오. – qwlice

0

같은 주요 세터의 규정 OnClickListener를 :

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()) 
         .setTitle(getResources().getString(R.string.dialog_title)) 
         .setMessage("Waiting ...") 
         .setNeutralButton(R.string.check, null); 

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

Button b_neutral = alertDialog.getButton(DialogInterface.BUTTON_NEUTRAL); 
b_neutral.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         TextView tv_message = (TextView) alertDialog.findViewById(android.R.id.message); 
         tv_message.setText("Works ..."); 
    } 
}); 
6

사용 alert.setMessage() 대신 builder.setMessage() 전화 alert.setMessage()의과 대화 언제의 설정 메시지 필요.

+2

답변입니다! – qwlice

+0

"alert.setMessage()'**는 ** 적어도'AlertDialog.Builder''builder.setMessage()'를''"input ('null ' '입력은 또한 작동하지 않을 것이다). 알려진 문제입니다. [https://issuetracker.google.com/issues/36913966](https://issuetracker.google.com/issues/36913966) – Eido95

+0

문제는 Android 2.3 이전에 처음 신고되었습니다. 이전 버전에 비해 Android 4.x에 많은 변경 사항이 있었기 때문에 4.2.2 이상과 같은 최신 Android 버전에는이 문제가 존재하지 않을 가능성이 큽니다. – Danger

관련 문제