Урок 12. Логи и всплывающие сообщения
Re: Урок 12. Логи и всплывающие сообщения
math64, спасибо! Точно, а то я уже подтупливаю в ночи...
Re: Урок 12. Логи и всплывающие сообщения
Но вообще, лучше не выдавать тост, а подсвечивать неправильно заполненные поля красной рамкой - думаю, это можно сделать стилями.
Или делать и то, и другое.
Или делать и то, и другое.
Re: Урок 12. Логи и всплывающие сообщения
Без тоста не обойтись в случае того, когда на поле накладываются проверки не только на пустоту, а еще, например, на правильный формат телефона. Тогда логично пользователю указать на ошибку, а не просто показать красное поле. Вспомните, сколько таких форм в сети, когда заполняешь форму из десятка полей, и выдает в случае ошибки одно единственное предупреждение: "Вы неправильно заполнили одно из полей"math64 писал(а):Но вообще, лучше не выдавать тост, а подсвечивать неправильно заполненные поля красной рамкой - думаю, это можно сделать стилями.
Или делать и то, и другое.
Re: Урок 12. Логи и всплывающие сообщения
Вот здесь точно изобретать велосипед не стоит, у TextView (и у EditText) есть метод setError проверяете правильность ввода, в случае ошибки применяете метод с текстом сообщения об ошибке и оно будет появляться в виде всплывающего сообщения указывающего на ячейку.
Re: Урок 12. Логи и всплывающие сообщения
Да, стоит использовать его. Можно указать свою иконку, указывающую на ошибку, вместо стандартной.
Но всплывающеее сообщение будет показано только если TextView в фокусе. Поэтому, перед вызовом setError() нужно сделать requestFocus().
Но всплывающеее сообщение будет показано только если TextView в фокусе. Поэтому, перед вызовом setError() нужно сделать requestFocus().
Re: Урок 12. Логи и всплывающие сообщения
Я до этого еще не дошел (изучаю Андроид всего неделю), просто хотел поэкспериментировать с тостом. А за подсказку спасибоAndreyI писал(а):Вот здесь точно изобретать велосипед не стоит, у TextView (и у EditText) есть метод setError проверяете правильность ввода, в случае ошибки применяете метод с текстом сообщения об ошибке и оно будет появляться в виде всплывающего сообщения указывающего на ячейку.
Re: Урок 12. Логи и всплывающие сообщения
Интересно у меня получается...
Почему-то, при создании тега лога с именем:Act у меня не работает фильтр, и он пишет абсолютно все логи, как и без фильтра.
Целый час сидел, менял название тегов, все работают, если они не называются Act.
Встречался кто с таким нюансом, или это у меня только?
(Заранее повторю: менял все названия, делал clean проекта, логи с любым другим именем тега отлично работают, только с данным траблы).
Почему-то, при создании тега лога с именем:Act у меня не работает фильтр, и он пишет абсолютно все логи, как и без фильтра.
Целый час сидел, менял название тегов, все работают, если они не называются Act.
Встречался кто с таким нюансом, или это у меня только?
(Заранее повторю: менял все названия, делал clean проекта, логи с любым другим именем тега отлично работают, только с данным траблы).
Re: Урок 12. Логи и всплывающие сообщения
kudri , тип лога м.б. не верно указали?
Re: Урок 12. Логи и всплывающие сообщения
Shifted тип лога стоял debug, хотя я этот параметр также менял на info, все равно не работает.
Вообще прикольно, что такого в теге Act )
Вообще прикольно, что такого в теге Act )
Re: Урок 12. Логи и всплывающие сообщения
Ну абсолютно все логи он не будет писать, а только те что содержат в теге "Act" (Activity и т.п.)kudri писал(а):Интересно у меня получается...
Почему-то, при создании тега лога с именем:Act у меня не работает фильтр, и он пишет абсолютно все логи, как и без фильтра.
Целый час сидел, менял название тегов, все работают, если они не называются Act.
Встречался кто с таким нюансом, или это у меня только?
(Заранее повторю: менял все названия, делал clean проекта, логи с любым другим именем тега отлично работают, только с данным траблы).
На самом деле в полях фильтра пишется не просто названия тега по которому искать, а полноценное регулярное выражение (RegExp), как работать с регэкспами и синтаксис составления паттернов хорошо описан в Интернете.
Re: Урок 12. Логи и всплывающие сообщения
Собственна вопрос - как сделать кастомный тост? Я сделал отдельную эксемельку с текствьшкой, проинфлейтил ее, прикрутил на Toast toast.setView - отобразился тот текст, что был задан во вьюшке по умолчанию...это логично...Вопрос - как передать туда кастомный текст? Если использую обычный мэйктекст - не передается. Попробовал передать в эксемельку, которая инфлейтится - ошибка вылезла...
Re: Урок 12. Логи и всплывающие сообщения
Перед установкой кастомного view в toast получите доступ к его текстовому полю и используйте его для смены текста перед показом тоста. Методы toast для установки текста конечно ничего не знают о вашем view и не знают как туда вставлять текст, что вполне естественно.
Re: Урок 12. Логи и всплывающие сообщения
Так...и как это сделать-то? )))
Инфлейтю эксемэльку, делаю ее вьюшкой. В ней сидит текстовое поле. Получаю к нему доступ. Передаю ей текст - вылезает ошибка. Ставлю текст сразу - работает
Инфлейтю эксемэльку, делаю ее вьюшкой. В ней сидит текстовое поле. Получаю к нему доступ. Передаю ей текст - вылезает ошибка. Ставлю текст сразу - работает
Re: Урок 12. Логи и всплывающие сообщения
Почему Eclipse ругается на "@Override" перед реализацией метода OnClick?
Re: Урок 12. Логи и всплывающие сообщения
Радует, что сам дошел до предложенного Ameron решения с мгновенным изменением текста в Toast. Ему все равно большое спасибо.
Re: Урок 12. Логи и всплывающие сообщения
Нужно ли каким то образом делать отключение ведения логов когда собирается релиз (есть ли вообще такое понятие)? Или вывод логов не существенно тормозит само приложение?
Re: Урок 12. Логи и всплывающие сообщения
не нужно, и не тормозит, ну разве что вы тысячи строк кидаете в лог))pethead писал(а):Нужно ли каким то образом делать отключение ведения логов когда собирается релиз (есть ли вообще такое понятие)? Или вывод логов не существенно тормозит само приложение?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 12. Логи и всплывающие сообщения
Ну например в винде я пользуюсь
этой штукой. И ежели их навтыкать всюду, и особенно в циклы, то работа приложения существенно замедляется (по крайнее мере в некоторых критичных к быстродействию местах приложения). Поэтому в релизе я их убираю. Либо оставляю только некритичные. Поэтому и возник вопрос.
Код: Выделить всё
void WINAPI OutputDebugString(
_In_opt_ LPCTSTR lpOutputString
);
Re: Урок 12. Логи и всплывающие сообщения
Задача: по клику сопоставить текущее время с временем из списка и согласно условию вывести соответствующее сообщение
Реализация:
Проблема: оператор всегда вычисляет, что уже ночь, вне зависимости от времени. case'ом выяснил, что если в переменной "duUser" ставить ".hour" то значение будет "0", ".HOUR" = "3". Видно не туда копаю.
Подскажите как из переменной "duUser" забрать значение именно часов ну или всего времени в int?
Или есть какой другой вариант "выяснения" текущего времени.
Реализация:
Код: Выделить всё
public class MainActivity extends Activity {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void btn1_click (View v) {
final Time duUser = new Time(sdf.format(new Date(System.currentTimeMillis())));
if (duUser.hour > 5) {
Toast.makeText(this, "Доброе утро!", Toast.LENGTH_LONG).show();
}
if (duUser.hour > 12 && duUser.hour < 16) {
Toast.makeText(this, "Приятного дня!", Toast.LENGTH_LONG).show();
}
if (duUser.hour >= 20 && duUser.hour < 23) {
Toast.makeText(this, "Спокойной ночи!", Toast.LENGTH_LONG).show();
}
if (duUser.hour >= 23 || duUser.hour <= 5) {
Toast.makeText(this, "Уже ночь!", Toast.LENGTH_LONG).show();
}
// выводим на экран текущее время в ранее объявленном формате sdf
Toast.makeText(this, "Текущее время_" + String.valueOf(sdf.format(new Date(System.currentTimeMillis()))), Toast.LENGTH_LONG).show();
}
Подскажите как из переменной "duUser" забрать значение именно часов ну или всего времени в int?
Или есть какой другой вариант "выяснения" текущего времени.
Re: Урок 12. Логи и всплывающие сообщения
Конструктор Time со строкой на вход ждет, что ему вручат timezone: http://developer.android.com/reference/ ... ng.String)
А вы пытаетесь туда время положить. Используйте пустой конструктор, а время ставьте методом set - http://developer.android.com/reference/ ... #set(long). На вход пойдет System.currentTimeMillis().
Так, думаю, заработает. Правда, не знаю, как он воспримет часы: 12 или 24.
Есть еще вариант:
Calendar clnd = Calendar.getInstance();
int hour = clnd.get(Calendar.HOUR_OF_DAY);
актуализировать календарь - clnd.setTimeInMillis(System.currentTimeMillis());
А вы пытаетесь туда время положить. Используйте пустой конструктор, а время ставьте методом set - http://developer.android.com/reference/ ... #set(long). На вход пойдет System.currentTimeMillis().
Так, думаю, заработает. Правда, не знаю, как он воспримет часы: 12 или 24.
Есть еще вариант:
Calendar clnd = Calendar.getInstance();
int hour = clnd.get(Calendar.HOUR_OF_DAY);
актуализировать календарь - clnd.setTimeInMillis(System.currentTimeMillis());