如何根据系统小时更改TextView?

时间:2014-07-20 08:24:07

标签: android

我在这里很新。

我想知道如何使用文本显示TextView"打开"并将其改为"关闭"取决于系统时间。

我希望我的问题很明确。提前谢谢。

4 个答案:

答案 0 :(得分:0)

使用此answer获取时间。

然后根据时间和日期做你的逻辑。 然后使用函数' setText'文本视图,以便根据小时更改文本。

如果您希望在应用仍在运行时更改文本,则需要根据时间创建事件。

答案 1 :(得分:0)

在这个link上有很多计算时间的方法,
并根据您的要求使用if和esle if condition

并在这些if和else if条件

如果你想让你的textview不可见

TextView tv1 = (TextView)findViewById(R.id.tv1);
        tv1.setVisibility(View.INVISIBLE);

用于制作可见

tv1.setVisibility(View.VISIBLE);

答案 2 :(得分:0)

我认为你可以使用这样的东西,有时候我们需要在我们的应用程序中实现,最终没有人理解的东西!

您可以在此处查看完整文章:http://android-developers.blogspot.com.br/2007/11/stitch-in-time.html

private Handler mHandler = new Handler();

...

OnClickListener mStartListener = new OnClickListener() {
   public void onClick(View v) {
       if (mStartTime == 0L) {
            mStartTime = System.currentTimeMillis();
            mHandler.removeCallbacks(mUpdateTimeTask);
            mHandler.postDelayed(mUpdateTimeTask, 100);
       }
   }
};

这里要注意几件事。首先,事件上没有.getWhen()方法,我们可以方便地设置计时器的开始时间。相反,我们抓住System.currentTimeMillis()。另外,Handler.postDelayed()方法只需要一个时间参数,它没有"重复"领域。在这种情况下,我们对Handler"在100ms"之后调用mUpdateTimeTask(),这是一种火,忘了一次性射击。我们还会在添加新处理程序之前删除对处理程序的任何现有回调,以确保我们不会获得比我们想要的更多回调事件。

但我们希望它重复,直到我们告诉它停止。为此,只需将另一个postDelayed放在mUpdateTimeTask run()方法的尾部。另请注意,Handler需要Runnable的实现,因此我们更改mUpdateTimeTask来实现它而不是扩展TimerTask。具有所有这些更改的新时钟更新程序如下所示:

private Runnable mUpdateTimeTask = new Runnable() {
   public void run() {
       final long start = mStartTime;
       long millis = SystemClock.uptimeMillis() - start;
       int seconds = (int) (millis / 1000);
       int minutes = seconds / 60;
       seconds     = seconds % 60;

       if (seconds < 10) {
           mTimeLabel.setText("" + minutes + ":0" + seconds);
       } else {
           mTimeLabel.setText("" + minutes + ":" + seconds);            
       }

       mHandler.postAtTime(this,
               start + (((minutes * 60) + seconds + 1) * 1000));
   }
};

答案 3 :(得分:0)

您可以获取当前小时并将其保存在整数变量中并使用(if)

 int hour = new Time(System.currentTimeMillis()).getHours();
    if (hour >= 10 && hour <= 19)
    textview.setText("OPEN");
    else
    textview.setText("CLOSE");

我希望有帮助