반응형
TextView에 text 부분을 1초마다 시간을 가져와 업데이트 하는 소스코드 입니다. 단순히 이러한 동작만을 위하는 것이라기 보다는 View객체를 화면에 그릴 때, 아래의 코드와 같이 접근한다면 가능하다는 것을 보여주는 것입니다.
코드를 보시면 timer안에 Handler를 이용하여 Runnable을 수행합니다.
Handler는 TextView의 handler를 얻어옵니다.
Runnalbe에는 TextView의 text를 변경하는 동작을 수행하는 코드가 작성되어있습니다.
100번의 말보다 1번 코드를 보시는게 낫겠죠?
코드를 보시면 timer안에 Handler를 이용하여 Runnable을 수행합니다.
Handler는 TextView의 handler를 얻어옵니다.
Runnalbe에는 TextView의 text를 변경하는 동작을 수행하는 코드가 작성되어있습니다.
100번의 말보다 1번 코드를 보시는게 낫겠죠?
public class TimeTest extends Activity {
TextView timeTextView;
String mMonthList[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
timeTextView = (TextView)findViewById(R.id.dateTimeText);
Timer timeTimer = new Timer();
timeTimer.schedule(timeTimerTask, 30, 1000);
}
TimerTask timeTimerTask = new TimerTask(){
public void run(){
Calendar calendar = Calendar.getInstance(Locale.KOREA);
Date date = calendar.getTime();
String timeAmPm = "";
if(calendar.get(Calendar.AM_PM) == 0)
timeAmPm= "am";
else{
timeAmPm= "pm";
TextView timeTextView;
String mMonthList[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
timeTextView = (TextView)findViewById(R.id.dateTimeText);
Timer timeTimer = new Timer();
timeTimer.schedule(timeTimerTask, 30, 1000);
}
TimerTask timeTimerTask = new TimerTask(){
public void run(){
Calendar calendar = Calendar.getInstance(Locale.KOREA);
Date date = calendar.getTime();
String timeAmPm = "";
if(calendar.get(Calendar.AM_PM) == 0)
timeAmPm= "am";
else{
timeAmPm= "pm";
if(12 < date.getHours())
date.setHours(date.getHours() - 12);
}
final String time = mMonthList[date.getMonth()] + " " + String.valueOf(date.getDay()) + " " + String.valueOf(date.getHours()) + ":" + String.valueOf(date.getMinutes()) + timeAmPm;
Handler timeHandler = timeTextView.getHandler();
timeHandler.post(new Runnable(){
public void run(){
Log.d("timeTimerTask", "Time : " + time);
timeTextView.setText(time);
}
});
} //end run
}; //end TimerTask
protected void onStop() {
timeTimerTask.cancel();
timeTimer.cancel();
final String time = mMonthList[date.getMonth()] + " " + String.valueOf(date.getDay()) + " " + String.valueOf(date.getHours()) + ":" + String.valueOf(date.getMinutes()) + timeAmPm;
Handler timeHandler = timeTextView.getHandler();
timeHandler.post(new Runnable(){
public void run(){
Log.d("timeTimerTask", "Time : " + time);
timeTextView.setText(time);
}
});
} //end run
}; //end TimerTask
protected void onStop() {
timeTimerTask.cancel();
timeTimer.cancel();
super.onStop();
}
} //end TimeTest
}
} //end TimeTest
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] xml에서 특수문자(&) 사용하기 (2) | 2011.05.04 |
---|---|
Android – Dialog, AlertDialog, ProgressDialog, DatePickerDialog, TimePickerDialog (0) | 2011.04.26 |
안드로이드 status bar 높이 알수 있는 방법 (0) | 2011.04.20 |
[안드로이드] 가속도 센서를 이용한 흔듬(Shake) 감지 (1) | 2011.04.11 |
[안드로이드] 멀티터치 구현하기 (드래그, 핀치투줌) (2) | 2011.04.08 |
[안드로이드] IP 주소 가져오기 (0) | 2011.04.06 |
[안드로이드] 커스텀 폰트 변경 (Custom Font) (0) | 2011.04.05 |
View를 상속받은 컨트롤(TextView, ImageView, ...)들 Bitmap으로 변환하기 (3) | 2011.03.30 |
안드로이드 속성값인 fill_parent 에서 match_parent 로의 변경 (0) | 2011.03.25 |
이클립스 워크스페이스 설정 (0) | 2011.03.24 |