我准备向一个程序中添加一个动态显示年月日时分秒的控件,用DigitalClock只能显示时分秒,在网上搜到一个代码能动态显示年月日,但是放到Android里显示的却是静态的,不知道什么原因,本人小白,请高手指点!!!
Java代码:
import java.awt.Dimension;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
 * This class is a simple JFrame implementation to explain how to
 * display time dynamically on the JSwing-based interface.
 */
public class TimeFrame extends JFrame
{
 /*
  * Variables 
  */
 private JPanel timePanel;
 private JLabel timeLabel;
 private JLabel displayArea;
 private String DEFAULT_TIME_FORMAT = "yyyy-MM-dd hh:mm:ss";
 private String time;
 private int ONE_SECOND = 1000;
 
 public TimeFrame()
 {
  timePanel = new JPanel();
  timeLabel = new JLabel("CurrentTime: ");
  displayArea = new JLabel();
  
  configTimeArea();
  
  timePanel.add(timeLabel);
  timePanel.add(displayArea);
  this.add(timePanel);
  this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  this.setSize(new Dimension(200,70));
  this.setLocationRelativeTo(null);
 }
 
 /**
  * 这个方法创建 a timer task 每秒更新一次 the time 
  */
 private void configTimeArea() {
  Timer tmr = new Timer();
  tmr.scheduleAtFixedRate(new JLabelTimerTask(),new Date(), ONE_SECOND);
 }
 
 /**
  * Timer task 更新时间显示区
  *
  */
 protected class JLabelTimerTask extends TimerTask{
  SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT);
  @Override
  public void run() {
   time = dateFormatter.format(Calendar.getInstance().getTime());
   displayArea.setText(time);
  }
 }
 
 public static void main(String arg[])
 {
  TimeFrame timeFrame=new TimeFrame();
  timeFrame.setVisible(true);  
  } 
}
Android代码:
package test.activity;import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;public class Test03 extends Activity {
/** Called when the activity is first created. */
private String DEFAULT_TIME_FORMAT = "yyyy-MM-dd hh:mm:ss";
private String time;
private int ONE_SECOND = 1000;
private TextView textview01;
private TextView textview02; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); textview01 = (TextView) findViewById(R.id.textview01);
textview02 = (TextView) findViewById(R.id.textview02);
configTimeArea();
} /**
 * 这个方法创建 a timer task 每秒更新一次 the time
 */
private void configTimeArea() {
Timer tmr = new Timer();
tmr.scheduleAtFixedRate(new TextViewTimerTask(), new Date(), ONE_SECOND);
textview02.setText("该方法已执行");
} /**
 * Timer task 更新时间显示区
 * 
 */
protected class TextViewTimerTask extends TimerTask {
SimpleDateFormat dateFormatter = new SimpleDateFormat(
DEFAULT_TIME_FORMAT); @Override
public void run() {
time = dateFormatter.format(Calendar.getInstance().getTime());
textview01.setText(time);
}
}
}