Toast 를 표시할려면 보통 getBaseActivity를 Context에 부르면 되지 않나??라고 생각하고 시도....보기좋게 실패..

어쩌면 UI쓰래드가 아니면 Toast는 안되나 보다..

 

[잘못된 방법]

Toast.makeText(getBaseActivity(), text, Toast.LENGTH_SHORT).show();
]]

[착한 방법]

getBaseActivity().runOnUiThread(new Runnable() {

     @Override
     public void run() {
          Toast.makeText(getBaseActivity(), text, Toast.LENGTH_SHORT).show();
     }
});
]]

--------------------------------------------------------->

[StringInputDialogBuilder]

String문자열을 입력시키는 다이얼로그를 간단하게 생성하는 빌더

안드로이드 리소스ID와 콜백설정만으로 간단하게 가능..

/**

 *문자열 입력 다이얼로그생성샘플

 */

private void sampleStringInputDialogBuilder() {

//UI쓰래드가 아니면 움직이지 않음

getBaseActivity().runOnUiThread(new Runnable() {

@Override

         public void run() {

//다이얼로그 생성

StringInputDialogBuilder builder = new StringInputDialogBuilder(getBaseActivity(),

R.string.user_regist_title,   //Title문구 리소스ID

R.string.user_regist_detail,  //본문 리소스ID

R.string.user_regist_error,   //에러발생시 Toast로 표시되는 문구의 리소스ID

R.drawable.ic_launcher,       //타이틀 아이콘이미지 리소스 ID

 

//ok버튼 클릭시 콜백

//pCallbackValue에 입력한 문자열이 들어옴

new Callback<String>() {

      @override

                 public void onCallback(String pCallbackValue) {
                        Toast.makeText(getBaseActivity(),

"「" + pCallbackValue + "」등록되었습니다.",

              Toast.LENGTH_SHORT).show();

         }

},

//Cancel버튼을 눌렸을때 콜백

new DialogInterface.OnCancelListener() {

@Override

public void onCancel(DialogInterface dialog) {

       Toast.makeText(getBaseActivity(), "등록을 취소하였습니다.",

Toast.LENGTH_SHORT).show();

}

});

 

//create로 생성

final Dialog dialog = builder.create();

dialog.show();

 

Toast나 Dialog는 UI쓰래드가 아니면 안되는 듯...

 

퇴근하고 만들어 봐야지...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by BeansLove
,