마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Custom Listener 안에서 Activity 의 TextView.setText("")하려 하는데요

0 추천
리스너를 구현하였습니다.

 

Activity에서 onListener 함수를 Override하여 그안에 적절한 내용을 적었는데

Override한 클래스 내의 TextView를 setText하려니까 오류가 나네요.

 

버튼클릭 리스너는 Activity 의 textView를 바꿀수 있는데

커스텀 Listner을 불가능 한가요?
익명사용자 님이 2015년 2월 2일 질문
오류나는 로그랑 , 그 오류가 발생하는 코드 부분을 올려주시면 다른 분들도 답변하실 때 좋겠네요
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState)
                scanner.setMyEventListener(onStroke);
                ev = (EditText)findViewById(R.id.bcr_edit);

        }
private StrokeListener onStroke = new StrokeListener(){
        @Override
        public void keyStrokeEvent(String scandata) {
           
            ev.setText("abc"); //이부분이 에러
           
        };
    };

2개의 답변

0 추천
 
채택된 답변
02-02 06:03:08.470: E/AndroidRuntime(3898): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

UI작업은 메인스레드를 통해서만 하세요

runOnUiThread(new Runnable() {
            @Override
            public void run() {
                ev.setText("abc");
            }
});
alkyne (22,960 포인트) 님이 2015년 2월 2일 답변
감사합니다. 잘 해결 했네요 ㅎㅎ
+1 추천
그렇진 않습니다 오류 로그를 함꼐 올리시면 더 빨리 해결 하실수 있습니다.
Gradler (109,780 포인트) 님이 2015년 2월 2일 답변
간단한 소스와 로그 추가 하였습니다.
...