안드로이드 개발 질문/답변
(글 수 45,052)
게임을 만드는데
메인액티비티에
LinearLayout을 상속받은 커스텀레이아웃을 붙여서 사용할때
서피스뷰에서 작업한 결과물을 Handler에 던져주어 Handler에서 커스텀 레이아웃에 TextView.setText("")를 해주는데.
이상하게 화면상에 변화가 없더라구요
서피스뷰 클래스에서 작업을 한 결과값을
서피스뷰클래스내에
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 0) {
gameScoreView.setStage(Integer.parseInt(msg.obj.toString()));
} else if (msg.what == 1) {
...................
핸들러로 갑을 던지ㅕㅁㄴ
새로 만든 커스텀레이아웃 클래스에 있는 메서드
public void setScore(int score) {
Log.d("gamescoreview", "" + score);
((TextView) this.findViewById(R.id.score)).setText("" + score);
}
여기다 던져줍니다.
또한
메인클래스에 커스텀레이아웃 객체 선언하여 서피스뷰클래스에 커스텀레이아웃 객체를 넘겨주면
서피스뷰클래스에서 객체를 받아와 커스텀레이아웃 객체를 사용하는 방식입니다.