【问题标题】:Android Java Refresher no clickAndroid Java Refresher 没有点击
【发布时间】:2015-07-13 14:33:08
【问题描述】:

我的 MainActivity.java 中有这个方法,它显示当前时间

// date format
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
// current date time
String now = format.format(Calendar.getInstance().getTime());

private void displayCurrentTime(String ctime) {
    TextView priceTextView = (TextView) findViewById(R.id.current_time);
    priceTextView.setText(ctime);
}

public void currentTime(View v) {
    displayCurrentTime(now);
}

这是显示时间的 activity_main.xml 中的按钮。

        <Button
        android:id="@+id/current_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="currentTime"
        android:paddingBottom="40dp"
        android:paddingTop="40dp"
        android:text="now"
        android:textSize="20dp" />

所以如果我用我的移动设备点击按钮,就会显示当前时间和日期。

我的问题是是否可以在没有 onClick 事件的情况下显示时间,

如果时间可以自行更新,因为现在它只显示我按下按钮的当前时间。

【问题讨论】:

    标签: java android time click refresh


    【解决方案1】:

    我使用这个定时器来刷新任何函数,但记得使用activity生命周期的函数来重启或停止定时器。

    @Override
    protected void onResume() {
        refreshData(1);
        super.onResume();
    }
    
    @Override
    protected void onPause() {
        refreshData(0);
        super.onPause();
    }
    
    @Override
    protected void onStop() {
        refreshData(0);
        super.onStop();
    }
    
    @Override
    protected void onDestroy() {
        refreshData(0);
        super.onDestroy();
    }
    

    声明计时器:

    Timer timer = new Timer();
    

    还有功能定时器:

        public void refreshData(int status) {
        if(status == 1){
            timer = new Timer();
            final Handler handler = new Handler();
            TimerTask doAsynchronousTask = new TimerTask() {       
                @Override
                public void run() {
                    handler.post(new Runnable() {
                        public void run() {       
                            //call to the function
                        }
                    });
                }
            };
            //time to timer 5 seg
            timer.schedule(doAsynchronousTask, 0, 5000);
        }
        else{
            timer.cancel();
        }
    }
    

    希望对您有所帮助.. :)

    【讨论】:

    • “重启或停止计时器的活动生命周期功能”是什么意思
    • 对不起,没有函数是方法,这里描述的活动的生命周期link 这很重要,不要将计时器作为资源问题留在活动之外,然后这些方法添加了一个 on /关闭计时器,以便在您离开活动时停止,并在您返回或想到新事物时开始,对不起我的英语
    【解决方案2】:

    您可以使用计时器并在每次计时器触发时更新按钮文本。 http://developer.android.com/reference/java/util/Timer.html
    您可以将计时器间隔保持在 1 秒以更新按钮时间。不确定这是否是最好的方法,但肯定会奏效。

    【讨论】:

    • 如果这对您有用,请稍后接受答案:)
    猜你喜欢
    • 2020-11-18
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多