안드로이드 개발 질문/답변
(글 수 45,052)
package com.dulgi.mogye;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class finaltestdday extends Activity {
Date today = new Date();
String now;
String finaltestday;
String testday = "20111110";
long diff;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.finaltestdday);
handler.sendEmptyMessage(0);
}
Handler handler = new Handler() {
public void handleMessage(Message mgs) {
TextView dday = (TextView) findViewById(R.id.dday);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
Date finaltestday = formatter.parse(testday, new ParsePosition(0));
diff = finaltestday.getTime() - today.getTime();
long diffDays = diff / (1000);
dday.setText((diffDays + 1) + "");
handler.sendEmptyMessageDelayed(0, 1000);
}
};
}
수능타이머를 제작하고있습니다.
handler를 이용해서 1초에 한번씩 해당내용을 보여주는 기능을 구현중인데 실제 d-day를 나타내려면
long diffDays = diff / (1000); =>>>>> long diffDays = diff / (24*60*60*1000);
이렇게 작성해야지 정상적인 d-day 출력값이 출력되지만, 지금은 1초마다 textview에 정보가 출력되는것을 살피기위해서
long diffDays = diff / (1000); 이렇게 놓았습니다.
그런데 이놈이 참 여러 방법 (TImer, Thread, handler)을 이용하고 도전해보는데 실시간 출력이 안되서 이곳에 남깁니다...
이유가 뭘까요 ㅠㅠ
p.s 아직은 어린 학생이라 패기를가지고 한번 내가 스스로 풀어보자라는 생각에 3일동안 노력중입니다만 결국 풀리지 않아서
이렇게 올립니다 ㅠㅠ...




finaltestday와 today의 값이 변경되지 않기 때문에 결과적으로 diff 값이 불변입니다.
today는 생성할때 시간으로 고정되어 있기 때문에 today.getTime()이 현재 시간을 가져오진 않겠지요.