我在这里很新。
我想知道如何使用文本显示TextView"打开"并将其改为"关闭"取决于系统时间。
我希望我的问题很明确。提前谢谢。
答案 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");
我希望有帮助