Урок 12. Логи и всплывающие сообщения

Обсуждение уроков
makcon
Сообщения: 5
Зарегистрирован: 15 авг 2012, 21:44

Re: Урок 12. Логи и всплывающие сообщения

Сообщение makcon » 15 авг 2012, 23:30

math64, спасибо! Точно, а то я уже подтупливаю в ночи...

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: Урок 12. Логи и всплывающие сообщения

Сообщение math64 » 16 авг 2012, 08:35

Но вообще, лучше не выдавать тост, а подсвечивать неправильно заполненные поля красной рамкой - думаю, это можно сделать стилями.
Или делать и то, и другое.

makcon
Сообщения: 5
Зарегистрирован: 15 авг 2012, 21:44

Re: Урок 12. Логи и всплывающие сообщения

Сообщение makcon » 16 авг 2012, 11:27

math64 писал(а):Но вообще, лучше не выдавать тост, а подсвечивать неправильно заполненные поля красной рамкой - думаю, это можно сделать стилями.
Или делать и то, и другое.
Без тоста не обойтись в случае того, когда на поле накладываются проверки не только на пустоту, а еще, например, на правильный формат телефона. Тогда логично пользователю указать на ошибку, а не просто показать красное поле. Вспомните, сколько таких форм в сети, когда заполняешь форму из десятка полей, и выдает в случае ошибки одно единственное предупреждение: "Вы неправильно заполнили одно из полей" :x

AndreyI
Сообщения: 372
Зарегистрирован: 14 май 2012, 16:18

Re: Урок 12. Логи и всплывающие сообщения

Сообщение AndreyI » 16 авг 2012, 12:37

Вот здесь точно изобретать велосипед не стоит, у TextView (и у EditText) есть метод setError проверяете правильность ввода, в случае ошибки применяете метод с текстом сообщения об ошибке и оно будет появляться в виде всплывающего сообщения указывающего на ячейку.

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: Урок 12. Логи и всплывающие сообщения

Сообщение math64 » 16 авг 2012, 13:27

Да, стоит использовать его. Можно указать свою иконку, указывающую на ошибку, вместо стандартной.
Но всплывающеее сообщение будет показано только если TextView в фокусе. Поэтому, перед вызовом setError() нужно сделать requestFocus().

makcon
Сообщения: 5
Зарегистрирован: 15 авг 2012, 21:44

Re: Урок 12. Логи и всплывающие сообщения

Сообщение makcon » 16 авг 2012, 15:56

AndreyI писал(а):Вот здесь точно изобретать велосипед не стоит, у TextView (и у EditText) есть метод setError проверяете правильность ввода, в случае ошибки применяете метод с текстом сообщения об ошибке и оно будет появляться в виде всплывающего сообщения указывающего на ячейку.
Я до этого еще не дошел (изучаю Андроид всего неделю), просто хотел поэкспериментировать с тостом. А за подсказку спасибо :!:

kudri
Сообщения: 5
Зарегистрирован: 01 окт 2012, 16:05

Re: Урок 12. Логи и всплывающие сообщения

Сообщение kudri » 12 окт 2012, 13:57

Интересно у меня получается...
Почему-то, при создании тега лога с именем:Act у меня не работает фильтр, и он пишет абсолютно все логи, как и без фильтра.
Целый час сидел, менял название тегов, все работают, если они не называются Act.
Встречался кто с таким нюансом, или это у меня только?
(Заранее повторю: менял все названия, делал clean проекта, логи с любым другим именем тега отлично работают, только с данным траблы).

Shifted
Сообщения: 7
Зарегистрирован: 12 окт 2012, 13:52

Re: Урок 12. Логи и всплывающие сообщения

Сообщение Shifted » 12 окт 2012, 14:17

kudri , тип лога м.б. не верно указали?

kudri
Сообщения: 5
Зарегистрирован: 01 окт 2012, 16:05

Re: Урок 12. Логи и всплывающие сообщения

Сообщение kudri » 12 окт 2012, 15:06

Shifted тип лога стоял debug, хотя я этот параметр также менял на info, все равно не работает.
Вообще прикольно, что такого в теге Act )

AndreyI
Сообщения: 372
Зарегистрирован: 14 май 2012, 16:18

Re: Урок 12. Логи и всплывающие сообщения

Сообщение AndreyI » 12 окт 2012, 15:25

kudri писал(а):Интересно у меня получается...
Почему-то, при создании тега лога с именем:Act у меня не работает фильтр, и он пишет абсолютно все логи, как и без фильтра.
Целый час сидел, менял название тегов, все работают, если они не называются Act.
Встречался кто с таким нюансом, или это у меня только?
(Заранее повторю: менял все названия, делал clean проекта, логи с любым другим именем тега отлично работают, только с данным траблы).
Ну абсолютно все логи он не будет писать, а только те что содержат в теге "Act" (Activity и т.п.)

На самом деле в полях фильтра пишется не просто названия тега по которому искать, а полноценное регулярное выражение (RegExp), как работать с регэкспами и синтаксис составления паттернов хорошо описан в Интернете.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Урок 12. Логи и всплывающие сообщения

Сообщение powercat » 08 ноя 2012, 17:36

Собственна вопрос - как сделать кастомный тост? Я сделал отдельную эксемельку с текствьшкой, проинфлейтил ее, прикрутил на Toast toast.setView - отобразился тот текст, что был задан во вьюшке по умолчанию...это логично...Вопрос - как передать туда кастомный текст? Если использую обычный мэйктекст - не передается. Попробовал передать в эксемельку, которая инфлейтится - ошибка вылезла...

AndreyI
Сообщения: 372
Зарегистрирован: 14 май 2012, 16:18

Re: Урок 12. Логи и всплывающие сообщения

Сообщение AndreyI » 08 ноя 2012, 17:53

Перед установкой кастомного view в toast получите доступ к его текстовому полю и используйте его для смены текста перед показом тоста. Методы toast для установки текста конечно ничего не знают о вашем view и не знают как туда вставлять текст, что вполне естественно.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Урок 12. Логи и всплывающие сообщения

Сообщение powercat » 09 ноя 2012, 10:40

Так...и как это сделать-то? )))
Инфлейтю эксемэльку, делаю ее вьюшкой. В ней сидит текстовое поле. Получаю к нему доступ. Передаю ей текст - вылезает ошибка. Ставлю текст сразу - работает

insider
Сообщения: 13
Зарегистрирован: 30 ноя 2012, 19:40

Re: Урок 12. Логи и всплывающие сообщения

Сообщение insider » 08 дек 2012, 19:33

Почему Eclipse ругается на "@Override" перед реализацией метода OnClick?

insider
Сообщения: 13
Зарегистрирован: 30 ноя 2012, 19:40

Re: Урок 12. Логи и всплывающие сообщения

Сообщение insider » 08 дек 2012, 19:40

Радует, что сам дошел до предложенного Ameron решения с мгновенным изменением текста в Toast. Ему все равно большое спасибо.

Аватара пользователя
pethead
Сообщения: 3
Зарегистрирован: 19 фев 2013, 18:28
Откуда: RU

Re: Урок 12. Логи и всплывающие сообщения

Сообщение pethead » 20 фев 2013, 13:31

Нужно ли каким то образом делать отключение ведения логов когда собирается релиз (есть ли вообще такое понятие)? Или вывод логов не существенно тормозит само приложение?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 12. Логи и всплывающие сообщения

Сообщение rezak90 » 20 фев 2013, 13:56

pethead писал(а):Нужно ли каким то образом делать отключение ведения логов когда собирается релиз (есть ли вообще такое понятие)? Или вывод логов не существенно тормозит само приложение?
не нужно, и не тормозит, ну разве что вы тысячи строк кидаете в лог))
R.id.team
Политика на форуме запрещена

Аватара пользователя
pethead
Сообщения: 3
Зарегистрирован: 19 фев 2013, 18:28
Откуда: RU

Re: Урок 12. Логи и всплывающие сообщения

Сообщение pethead » 20 фев 2013, 14:08

Ну например в винде я пользуюсь

Код: Выделить всё

void WINAPI OutputDebugString(
  _In_opt_  LPCTSTR lpOutputString
);
этой штукой. И ежели их навтыкать всюду, и особенно в циклы, то работа приложения существенно замедляется (по крайнее мере в некоторых критичных к быстродействию местах приложения). Поэтому в релизе я их убираю. Либо оставляю только некритичные. Поэтому и возник вопрос.

igor
Сообщения: 4
Зарегистрирован: 21 фев 2013, 13:12

Re: Урок 12. Логи и всплывающие сообщения

Сообщение igor » 26 фев 2013, 09:37

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

Реализация:

Код: Выделить всё

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(); 
		
	}
Проблема: оператор всегда вычисляет, что уже ночь, вне зависимости от времени. case'ом выяснил, что если в переменной "duUser" ставить ".hour" то значение будет "0", ".HOUR" = "3". Видно не туда копаю.
Подскажите как из переменной "duUser" забрать значение именно часов ну или всего времени в int?
Или есть какой другой вариант "выяснения" текущего времени.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 12. Логи и всплывающие сообщения

Сообщение damager82 » 04 мар 2013, 16:39

Конструктор 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());
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Ответить