2 myq 26 myq_26 于 2012.10.18 17:28 提问

在TextView中根据时间来显示不同的文本

这是要实现的代码:

package com.wao.texttime;

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;

    public class TextTime extends Activity {
            @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            TextView tv1 = (TextView) findViewById(R.id.TextView01);
            tv1.setText("Good Morning"); 
            TextView tv2 = (TextView) findViewById(R.id.TextView02);
            tv1.setText("Good Afternoon");
        }
    }

我想在TextView根据时间来显示不同的文本。比如在08:45-10:45之间显示什么文本等等。请问有什么好的建议吗?

5个回答

hcg_21
hcg_21   2012.10.19 11:50
已采纳

稍微有点复杂,希望帮的上你:

TextView textView = (TextView) findViewById(R.id.text);

    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(System.currentTimeMillis());

    cal.set(Calendar.HOUR_OF_DAY, 8);
    cal.set(Calendar.MINUTE, 45);
    cal.set(Calendar.SECOND, 0);

    long morning_start = cal.getTimeInMillis();

    cal.set(Calendar.HOUR_OF_DAY, 10);
    cal.set(Calendar.MINUTE, 0);

    long morning_end = cal.getTimeInMillis();
    long now = System.currentTimeMillis();

    if(now > morning_start && now < morning_end)
    {
        textView.setText("Good morning");
    }
    else
    {
        textView.setText("Have a nice day");
    }
franzhong
franzhong   2012.10.18 18:26

你这就是个闹钟功能,定时做一些事
用自定义一个BroadcastReceiver也行
用API AlarmManager可以实现指定时间运行某些动作
还可以用不靠谱的办法,启个线程循环监测时间
这里太卡了,我打个字平均三秒钟才出来

yongyong_21
yongyong_21   2012.10.22 15:00

你可以使用 Calender来获取指定时间.

int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
qq_27578023
qq_27578023   2016.06.15 21:49

TextView textView = (TextView) findViewById(R.id.text);

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());

cal.set(Calendar.HOUR_OF_DAY, 8);
cal.set(Calendar.MINUTE, 45);
cal.set(Calendar.SECOND, 0);

long morning_start = cal.getTimeInMillis();

cal.set(Calendar.HOUR_OF_DAY, 10);
cal.set(Calendar.MINUTE, 0);

long morning_end = cal.getTimeInMillis();
long now = System.currentTimeMillis();

if(now > morning_start && now < morning_end)
{
    textView.setText("Good morning");
}
else
{
    textView.setText("Have a nice day");
}
weilibeng5126
weilibeng5126   2017.04.02 09:20

不行啊?上面的方法是否有错?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!