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

커스텀뷰에 타이머 적용

0 추천

커스텀뷰가 있습니다.

커스텀뷰 아이템마다 타이머 기능이 있어서 멀티 타이머 만들려고 해요.

근데 밤새 찾아도 도저히 커스텀뷰 갱신을 할 수 가없습니다.

물론 안드로이드 개발은 처음하기는 하는데....

일단 제가 만드는 타이머라는게 10초 정해놓으면 1초씩 줄어들면 커스텀뷰에 써있는 시간도 1초씩 줄어들면서 바뀌어야

하는데 이걸 갱신으로 해야하지 않습니까? 근데 아무리 찾아도 못찾겠어요.

getView에 타이머 쓰레드를 구현을 해서 그런건지 여러 갱신방법을 써도 안되고..일단 getView 소스를 올립니다.ㅠㅠ

    public View getView(final int position, View convertView, final ViewGroup parent) {
        // 한 행의 디자인과 데이터의 결합
        System.out.println("getView() 호출 :" + position);

        if(convertView == null){
            convertView = inflater.inflate(layout, parent, false);
        }


        TextView tv = (TextView)convertView.findViewById(R.id.tv);
        tv.setText(src.get(position).getInfo());
        tv.setTextSize(20);


        tog = (ToggleButton)convertView.findViewById(R.id.tog);
        tog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                if(tog.isChecked()) {
                    Log.i("asd", src.get(position).getInfo());
                    mainTime = src.get(position).sumSec();


                    mTask = new TimerTask() {
                        public void run() {
                            int hour = mainTime / 3600;
                            int min = (mainTime % 3600) / 60;
                            int sec = (mainTime % 3600) % 60;
                            mainTime--;
                            src.get(position).setTime(hour, min, sec);
                            Log.i("asd", src.get(position).getInfo());
                        }
                    };
                    mTimer = new Timer();
                    mTimer.schedule(mTask, 1000, 1000);
                }

                else {
                    Log.i("test", "onDstory()");
                    mTimer.cancel();
                }
            }
        });

        return convertView;
    }
}
jhgy655 (270 포인트) 님이 2015년 6월 8일 질문
log 확인하면 타이머는 잘 돌아갑니다. 변수 갱신도 잘되구요..
커스텀뷰 아이템 갱신이 문제입니다. 쓰레드 안에 notifyDataSetChanged();이거 넣으면 당연히 안되고... 죽겠습니다.ㅠㅠ

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...