1

我是 Android 开发的新手。现在我想通过 textview 控件在线程中显示当前系统时间。我得到了一些例子,可以启动线程在 textview 控件中绘制文本。

但是当我尝试通过以下链接获取系统当前时间:在 Android 应用程序中显示当前时间和日期时,出现错误,错误提示:getDateTimeInstance() 对于 DateFormat 类型是未定义的。为什么这个答案对我不起作用?谢谢。

以下是供您参考的代码:

public class MainActivity extends Activity {
private TextView timeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(){
        public void run(){
                System.out.println("Thread is running!!");
                timeView = (TextView)findViewById(R.id.textView1);

                String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
                timeView.setText("I am Fired via Non-UI thread:"+s);
        }
    }.start();
}
4

1 回答 1

2

无法在线程中更新 ui

 timeView.setText("I am Fired via Non-UI thread:"+s);

使用runOnUiThread. 内部线程的运行方法

    runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                       timeView.setText("I am Fired via Non-UI thread:"+s);
                    }
                });

还要在线程外初始化textview

     timeView = (TextView)findViewById(R.id.textView1)

还要检查这个

http://developer.android.com/reference/java/text/DateFormat.html

检查您的导入声明。

import java.text.DateFormat // import this

代替

import android.text.format.DateFormat;  
于 2013-09-25T14:58:52.790 回答