Использование setText с правилами относительно текущего времени

Это мой файл .java в src:

package com.wao.texttime;

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

public class TextTime extends Activity {
    /** Called when the activity is first created. */
    @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 отображал разные тексты в зависимости от времени. F.ex. с 08:45 до 10:45 и так далее. Я очень новичок в кодировании как для Android, так и для Java, и я пытаюсь понять, как я могу создать правила для отображения текста. У Вас есть какие-то предложения?


person Anders    schedule 28.11.2010    source источник


Ответы (3)


Это может быть немного сложнее. Я бы, вероятно, использовал следующий подход (с небольшой оптимизацией c.)

    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");
    }
person LambergaR    schedule 28.11.2010

Используйте класс времени, чтобы получить текущее время. Затем используйте операторы switch или блоки if/else if/else (в зависимости от ваших конкретных требований) для отображения разных текстов.

person Community    schedule 28.11.2010

Вы можете использовать календарь, чтобы получить текущий час дня.

int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
person Moritz    schedule 28.11.2010
comment
Мне нужны и час, и минута, когда интервал может быть между 08:45 и 10:30. - person Anders; 29.11.2010