0

我正在使用 Chronometer 和 Textview 来实现秒表。我面临的问题是 Settext 方法会刷新 UI,这会干扰我在 ListView 上用于动画的 offsettopandbottom 方法。

有没有什么方法可以让 Settext 方法只刷新 Textview 或不干扰我的 Listview。

计时器代码

        stopwatch.setOnChronometerTickListener(new OnChronometerTickListener() {
        @Override
        public void onChronometerTick(Chronometer arg0) {

            int countup = (int) ((SystemClock.elapsedRealtime() - arg0
                    .getBase()) / 1000);
            String asText = (countup / 60) + ":" + (countup % 60);
            tvtimer.setText("Time Elapsed :- " + asText);
        }
4

1 回答 1

0

创建一个处理程序并使用它来设置您的 TextView 的文本。

Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            String message = (String) msg.obj.toString();

            // Set your UI mods here
            tvtimer.setText("Time Elapsed :- " + message);

            super.handleMessage(msg);
        }
    };

// 然后在您的 TickListener 中,执行以下操作:

stopwatch.setOnChronometerTickListener(new OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer arg0) {

        int countup = (int) ((SystemClock.elapsedRealtime() - arg0
                .getBase()) / 1000);
        String asText = (countup / 60) + ":" + (countup % 60);

        // Send a message to your handler
        Message msg = new Message();
        msg.obj = asText;
        handler.sendMessage(msg);

    }

希望能帮助到你 :)

于 2013-10-09T07:34:26.277 回答