1

アイデアは、現在のシステム時刻をフロント スクリーンの上部にあるボックスに、時:分:秒のようなデジタル形式で表示することです。継続的に更新する必要があります。ただし、秒を 1 秒ごとに更新すると、システムがダウンする可能性があります。したがって、ユーザーが更新レート (1 秒ごと、5 秒ごと、または 10 秒ごと) を選択できるようにしたいと考えています。問題は、5秒ごとにテキストビューを更新するにはどうすればよいですか? このコードを書きます:

package com.example.software;

import android.os.Bundle;
import android.app.Activity;
import android.text.format.Time;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Time dtNow = new Time();
        dtNow.setToNow();
        int hours;
        int minutes;
        int second;
        int i=100;
        int j=0;
        TextView txt =(TextView) findViewById(R.id.txt_view);

        while(i>0){

            hours = dtNow.hour;
            minutes= dtNow.minute;
            second = dtNow.second;
            txt.setText(hours+":"+minutes+":"+second);
        try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {

                e.printStackTrace();
        }



        }

    }


}

このコードを次のように更新します。

package com.example.softwareproject;

import android.os.Bundle;
import android.app.Activity;
import android.text.format.Time;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

     Time dtNow = new Time();

     int hours;
     int minutes;
     int second;
     int i=100;
     int j=0;


     @Override
    public void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         display();
    }

    public void display(){

        new Thread(new Runnable(){

            public void run() {

            while(i>0){
                    TextView txt =(TextView) findViewById(R.id.txt_view);
                    dtNow.setToNow();
                    hours = dtNow.hour;
                    minutes= dtNow.minute;
                    second = dtNow.second;
                    txt.setText(hours+":"+minutes+":"+second);


                        try{
                            Thread.sleep(5000);
                            }
                        catch (InterruptedException e) {
                            e.printStackTrace();
                            }
                        }
                 }
        }).start();

    }

}

しかし、私はまだこのエラーがあります:

[2012-12-14 03:54:25 - SoftwareProject] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.softwareproject/.MainActivity }
[2012-12-14 03:54:25 - SoftwareProject] ActivityManager: Warning: Activity not started, its current task has been brought to the front

とアプリケーションが停止しました。

4

0 に答える 0