-1

こんにちは、毎秒 3 つのテキストビューを更新しようとしています。私はこのコードを書きました。スレッドは正常に開始されますが、テキストビューは更新されません。テキストビューのテキストパラメーター内に関数を渡しています。これは、現在のシステム時刻を (Calendar を使用して) 数字で取得し、それを文字に変換します。例: 3.45 THREE FORTYFIVE の場合。任意の助けをいただければ幸いです。ありがとう

public class MainActivity extends Activity {

TextView currentv;
GetDate gd;
TextView currentmin;
TextView currentmins;
private Handler mHandler;
private boolean Running = true;







@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);





    currentv = (TextView) this.findViewById(R.id.tvtimehour);
    currentmin = (TextView) findViewById(R.id.tvtimemin);
    currentmins = (TextView) findViewById(R.id.tvtimesecond);



    gd = new GetDate();



    currentv.setText(gd.calculateTimeHour());
    currentmin.setText(gd.calculateTimeMinute());
    currentmins.setText(gd.calculateTimeMinuteDigit());



    mHandler = new Handler();
    Runnable runb = new Runnable(){

        @Override
        public void run(){
            while(Running == true){

                try{
                Thread.sleep(1000);
                }
                catch(Exception e){

                    e.printStackTrace();

                }

                mHandler.post(new Runnable(){
                    @Override
                    public void run(){


                             currentv.setText(gd.calculateTimeHour());
                     currentmin.setText(gd.calculateTimeMinute());
                                 currentmins.setText(gd.calculateTimeMinuteDigit());

                    }



                });


            }


        }





    };

    new Thread(runb).start();



}
4

2 に答える 2

1

これにはタイマーを使用します。スレッドはUIを更新できないためだと思います。

于 2013-09-20T12:53:54.760 に答える