안녕하세요~^^
안드로이드...개발하다가 정말 지쳐서 디버깅을 어떻게 할까 하다 하다 못해
Toast 를 고정적으로 띄워놓고, 값을 변경 시켜버리기로 하였습니다.

결국 Logcat 에서 100개 정도 뜨다가 안뜨는 그런 버그... 찾기도 힘들고 귀찮아서 -_-ㅋ
토스트로 해결을 해보자. 하였습니다.

물론 디버깅하는데 개발환경 및 등등등 에 따라서 저의 디버깅 방법이 맞지 않을 수 있으나,

뭐 저두 저 나름대로 편한대로 한거니깐. 써보시길,



글을 작성하겠습니다.
(스크린샷은 찍기 귀찮네요 ㅎㅎㅎㅎ)


1. Toast 를 화면의 고정적으로 띄우도록 하자.


Handler m_handler = new Handler() {
    public void handleMessage( Message msg ){
        if( msg.what == 0 ){
            Toast.makeText( m_context, "Init Orientation Mode", Toast.LENGTH_SHORT).show();
        }
        else if( msg.what == 1 ){
            int angle = (int)msg.arg1;
             
            if( m_Msg == null ){                   
                //m_Msg = Toast.makeText( m_context, "Angle = " + angle, Toast.LENGTH_SHORT);                   
                m_Msg = Toast.makeText( m_context, (String)msg.obj, Toast.LENGTH_SHORT);
            }
            else{
                m_Msg.setGravity(Gravity.BOTTOM | Gravity.RIGHT, 0, 0);                   
                //m_Msg.setText( "Angle = " + angle );             
                m_Msg.setText( (String)msg.obj );
                m_Msg.show();
            }
        }   
    }
};

 

Toast 의 return 되는 값을 저장해두고 값이 없어지는지 아닌지 확인을 합니다.

그리고 Toast 의 메시지를 setText() 함수를 사용하여 내용을 변경하도록 합니다.


자세한 설명은 소스가 짧기 때문에 안합니다~^^


// test Toast Message
String str = "init : " + (int)SensorInitAzimuth + ", Present : " + (int)SensorPresentAzimuth + ", diff : " + diff;
Message msg = Message.obtain();
msg.what = 1;
msg.arg1 = (int)angle[2];//(int)(-presentImgAzimuth);
msg.obj = (Object)str;
m_handler.sendMessage(msg);


토스트내용 출력이야 당연히 아실꺼구...


그냥 그렇게 하면 됩니다. 


Posted by 모과이IT
,