2012-03-07 3 views
0

에서 대화 상자보기 나는 내가 대화 메시지를 표시하는 데 사용할 간단한 클래스가 있습니다안드로이드 정적 클래스

public class Utils { 

    static void ShowMessage(Context c, String DialogTitle, String MessageToDisplay, int LayoutResourceID, int ImageResourceID){ 

     //Create new dialog. 
     Dialog dialog = new Dialog(c); 

     //Set the view to an existing xml layout. 
     dialog.setContentView(LayoutResourceID); 
     dialog.setTitle(DialogTitle); 

     //Set textbox text and icon for dialog. 
     TextView text = (TextView) dialog.findViewById(R.id.text); 
     text.setText(MessageToDisplay); 
     ImageView image = (ImageView)dialog.findViewById(R.id.image); 
     image.setImageResource(ImageResourceID); 

     //Show the dialog window. 
     dialog.show(); 
    } 
} 

를 그리고 난의 OnClickListener를 이벤트 내에서 내 활동에서 호출하는 것을 시도하고있다

private OnClickListener btnSubmitIssueClick = new OnClickListener(){ 

    public void onClick(View v){ 
     //Check for valid Summary & Description. 
     if(mSummaryEditText.getText().toString().trim().length() == 0){ 
      Utils.ShowMessage(getBaseContext(), "Submit Issue Error", getBaseContext().getString(R.string.ERROR_SummaryRequired), 
        R.layout.modal_dialog, R.drawable.warning); 
      return; 
     }else if(mDescriptionEditText.getText().toString().trim().length() == 0){ 
      Utils.ShowMessage(getBaseContext(), "Submit Issue Error", getBaseContext().getString(R.string.ERROR_DescriptionRequired), 
        R.layout.modal_dialog, R.drawable.warning); 
      return; 
     } 
    } 
}; 

하지만 그것을 실행할 때이 오류가 얻을 : 버튼과 같이 내가 무엇인지에

03-07 16:56:00.290: W/WindowManager(169): Attempted to add window with non-application token WindowToken{4162e780 token=null}. Aborting. 

어떤 아이디어를 잘못하고있는거야?

답변

1

대화 상자를 만드는 데 사용되는 컨텍스트로 기본 컨텍스트를 전달합니다. 이 대화 상자를 호스팅하는 활동에 대한 컨텍스트이어야합니다. 액티비티 자체는 실제로 컨텍스트 객체이므로 액티비티에 대한 참조 만 전달하면됩니다.

다음 SO 질문 here은 더 완전한 설명을 제공합니다.

+0

그 링크를 가져 주셔서 감사합니다 ... 나는 항상 "getContext"메소드의 유형을 구별하기가 어려웠습니다. – Robert