Android - Получить EditText и показать диалог - PullRequest
0 голосов
/ 24 января 2012

Я хочу, чтобы мое приложение могло получать ввод времени пользователем (ЧЧ: мм) из виджета EditText.На основе этого значения времени мое приложение должно отображать диалоговое окно, когда текущее время соответствует введенному времени.

Gaauwe

* Редактировать *

Я хочу разместить виджет EditText в моем приложении.Пользователь заполнит его некоторым значением времени (например, 10:30).Затем, когда появится реальное время (10:30), появится диалоговое окно.

Ответы [ 6 ]

3 голосов
/ 24 января 2012

Я думаю, вы можете использовать AlarmManager для этого.

Я бы посоветовал вам взглянуть на некоторые подобные учебники, чтобы помочь вам начать

http://michael.theirwinfamily.net/articles/android/android-creating-alarm-alarmmanager

http://android.arnodenhond.com/tutorials/alarm-notification

1 голос
/ 24 января 2012

Это не так уж сложно.Когда пользователь закончит редактирование вашего EditText, прочитайте значение времени и создайте экземпляр AlarmManager с начальным временем, рассчитанным как разница между текущим временем и тем, что пользователь написал в EditText.Лучше использовать TimePicker, чтобы избежать анализа ввода пользователя.Добавьте получателя для AlarmManager, получатель запустит Сервис, который покажет диалог или сделает все, что вы захотите.Вам нужно использовать AlarmManager, потому что, если ваше устройство спит, ничто его не разбудит, кроме системного вызова, такого как AlarmManager.Сообщение @Zortkun со ссылками поможет вам понять, как управлять AlarmManager.

1 голос
/ 24 января 2012

попробуйте это:
использовать службу: затем, когда пользователь вводит время, запускает службу, когда системное время и введенное пользователем время соответствуют показам.

0 голосов
/ 24 января 2012

Я попытаюсь понять ...

Поскольку вы знаете, как извлечь текст из EditText, вам понадобится оператор if.

Что-то, что сравнивает это времяк текущему времени.

        if (editTime == realTime) {

    Toast.makeText(getApplicationContext(), "RING RING RING",
                            Toast.LENGTH_SHORT).show();

}

Используйте что-то вроде этого:

Прочтите это, чтобы понять, как получить строку текущего времени.

0 голосов
/ 24 января 2012

RAW WAY!

Поэтому, когда пользователь помещает текст в edittext и нажимает кнопку, вы можете сохранить текст следующим образом:

String time = findViewById(R.id.yourEditText).getText().toString();

и запустить поток, проверяющий время, икогда время равно строковому времени пользователя, вы можете отобразить диалоговое окно:)

Thread t = new Thread(new Runnable(){
   public void run(){
      while(new Date().getLocalTime()!=usersTime){ // is just pseudocode
          Dialog.show();
      }   
   }
});
0 голосов
/ 24 января 2012

Вы можете извлечь данные из EditText с помощью:

findViewById(R.id.yourEditText).getText().toString();

Остальную часть вашего вопроса я не понял.

...