Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Toast вне Activity / 21 сообщений из 21, страница 1 из 1
01.08.2014, 13:06
    #38710755
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Доброе время суток!

Пишу под андроид проект, тема новая для меня, много еще неизвестного...

Ситуация такова - иногда надо посмотреть, как работает тот или иной метод, что и как в нем происходит. Кидать в логи что-то или по шагам запускать - бывает не всегда удобно. А вот если использовать всплывающее окно и кинуть в него с использованием Toast некий текст - хоть и примитивно, но иногда удобнее, чем ставить брейкпоинты и тестить переменные.
Если вывести в всплывающее окно значение переменной из какого-либо класса, то надо в этот класс передавать Context активити.
А можно ли как-то по другому заставить из любого класса вывести всплывающее окно в активити, например, отправкой сообщения активити или еще как? Что-то нет желания в классы, где реализуется функционал, передавать Context, который там не нужен. По сути - нужно временное решение, чисто для отладки, чтобы потом можно было его быстро выкорчевать из релиза.

Как вариант, можно конечно создать активити-костыль и в него передавать значения переменных в рантайме - пусть показывает - видимо так и сделаю...

Заранее спасибо!
...
Рейтинг: 0 / 0
01.08.2014, 13:08
    #38710760
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Привет.

Чем Log.d, Log.v не устраивают? Они кидают сообщения в логкат, который отображается и в студии и в эклипсе и утилитой из сдк можно посмотреть.
...
Рейтинг: 0 / 0
01.08.2014, 13:11
    #38710764
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadmanПривет.

Чем Log.d, Log.v не устраивают? Они кидают сообщения в логкат, который отображается и в студии и в эклипсе и утилитой из сдк можно посмотреть.

потом надо отыскивать эти логи в потоке, а так на экране мелькнуло бы всплывающее окошко и сразу было бы видно что и как
...
Рейтинг: 0 / 0
01.08.2014, 13:13
    #38710766
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Galadriel75wadmanПривет.

Чем Log.d, Log.v не устраивают? Они кидают сообщения в логкат, который отображается и в студии и в эклипсе и утилитой из сдк можно посмотреть.

потом надо отыскивать эти логи в потоке, а так на экране мелькнуло бы всплывающее окошко и сразу было бы видно что и как
я в логи кидаю в том числе, но, мне кажется, что продуктивность немного увеличится, если в простейших случаях не надо будет миллионный раз щелкать по вкладке с логами и искать последние логи, а просто бросить взгляд на устройство
...
Рейтинг: 0 / 0
01.08.2014, 13:21
    #38710781
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Galadriel75wadmanПривет.

Чем Log.d, Log.v не устраивают? Они кидают сообщения в логкат, который отображается и в студии и в эклипсе и утилитой из сдк можно посмотреть.

потом надо отыскивать эти логи в потоке, а так на экране мелькнуло бы всплывающее окошко и сразу было бы видно что и как
Тогда наверное стоит открыть для себя фильтр. Все равно лучше, надежнее и проще, чем влеплять в код всплывающие окошки...
...
Рейтинг: 0 / 0
01.08.2014, 13:21
    #38710782
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
может копнуть в сторону интентов, бродкастов и бродкастресайва...?
...
Рейтинг: 0 / 0
01.08.2014, 13:22
    #38710784
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadmanGaladriel75пропущено...


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

окошки были бы в данном случае удобнее :)
...
Рейтинг: 0 / 0
01.08.2014, 13:27
    #38710794
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Идейка одна пришла, щас попробую ее сделать - авось и прокатит, все равно временный костыль...
...
Рейтинг: 0 / 0
01.08.2014, 13:29
    #38710797
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Galadriel75wadmanпропущено...

Тогда наверное стоит открыть для себя фильтр. Все равно лучше, надежнее и проще, чем влеплять в код всплывающие окошки...

окошки были бы в данном случае удобнее :)
Хозяин - барин... Сделай отдельный статический класс, в который при создании активити передавай контекст, который храни через WeakReference. Плюс пара статических функций, которые светят тостом. Потом заглушить будет просто: в одном месте все.
...
Рейтинг: 0 / 0
01.08.2014, 13:39
    #38710815
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadmanGaladriel75пропущено...


окошки были бы в данном случае удобнее :)
Хозяин - барин... Сделай отдельный статический класс, в который при создании активити передавай контекст, который храни через WeakReference. Плюс пара статических функций, которые светят тостом. Потом заглушить будет просто: в одном месте все.
супер! спасибо! так и сделаю! все с этого и начиналось, потом торкнуло и полез искать как без класса обойтись :)
...
Рейтинг: 0 / 0
01.08.2014, 13:51
    #38710830
WebPrj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadman,
+1
Код: java
1.
Utils.Сообщение(this, ....)


только WeakReference зачем?
...
Рейтинг: 0 / 0
01.08.2014, 13:57
    #38710832
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
WebPrj
Код: java
1.
Utils.Сообщение(this, ....)



только WeakReference зачем?
В твоем случае - ни за чем, а в моем - по-феншую. Чтоб не вылезло потом как в androidannotation.
...
Рейтинг: 0 / 0
01.08.2014, 14:07
    #38710843
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
вот такой костыль родился в этом мире...
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
import android.content.Context;
import android.widget.Toast;

public class MessageBox {
	private static Context context;
	public static void setContext(Context mcontext) {
		context = mcontext;
	}
	
	public static void print(String txt) {
		Toast.makeText(context, txt, Toast.LENGTH_LONG).show();
	}

}
...
Рейтинг: 0 / 0
01.08.2014, 14:12
    #38710847
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Поправил.
Galadriel75
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
import android.content.Context;
import android.widget.Toast;

public static class MessageBox {
	private static Context mContext;
	public static void setContext(Context context) {
		mContext = context;
	}
	
	public static void print(String txt) {
		Toast.makeText(mContext, txt, Toast.LENGTH_LONG).show();
	}

}
...
Рейтинг: 0 / 0
01.08.2014, 14:13
    #38710848
WebPrj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadman,
Пока не понял, о чём ты.
Попутный вопрос о сообщении в Окно сообщений:
Есть разница какой контекст передавать?
Не будет ли от этого зависеть время жизни в окошке вверху?
Что передать вместо AlarmReceiver.class?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
  public static void ShowMessage_Notification(Context cxtApp) {
    /////////////////////////////////////////////////////////////////
    // Context.NOTIFICATION_SERVICE
    Intent notificationIntent = new Intent(cxtApp, AlarmReceiver.class);
    PendingIntent contentIntent = PendingIntent.getActivity(cxtApp,
            0, notificationIntent,
            PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationManager nm = (NotificationManager) cxtApp
            .getSystemService(Context.NOTIFICATION_SERVICE);

    Resources res = cxtApp.getResources();
    Notification.Builder builder = new Notification.Builder(cxtApp);

    builder.setContentIntent(contentIntent)
            .setWhen(System.currentTimeMillis())
            .setAutoCancel(true)

            .setSmallIcon(android.R.drawable.sym_action_email)
            .setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.ic_launcher))
            .setTicker("Ticker") // Подробнее под кодом res.getString(R.string.app_name
            .setContentTitle("ContentTitle")// Текст заголовка уведомления при развернутой строке статуса
            .setContentText("ContentText");//Текст под заголовком уведомления при развернутой строке статуса

    Notification n = builder.build();// deprecated builder. getNotification();

    nm.notify(NOTIFY_ID, n);
    // Context.NOTIFICATION_SERVICE
    /////////////////////////////////////////////////////////////////
  }
...
Рейтинг: 0 / 0
01.08.2014, 14:47
    #38710890
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
WebPrjЕсть разница какой контекст передавать?
Нет.
WebPrjНе будет ли от этого зависеть время жизни в окошке вверху?
Нет.
WebPrjЧто передать вместо AlarmReceiver.class?
Тут указывается класс активити, которая вызовется при реакции пользователя. Так что этот вопрос к тебе.
...
Рейтинг: 0 / 0
01.08.2014, 14:49
    #38710894
Galadriel75
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadmanПоправил.
Galadriel75
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
import android.content.Context;
import android.widget.Toast;

public static class MessageBox {
	private static Context mContext;
	public static void setContext(Context context) {
		mContext = context;
	}
	
	public static void print(String txt) {
		Toast.makeText(mContext, txt, Toast.LENGTH_LONG).show();
	}

}



так не компилится - ругается на статик перед класс
...
Рейтинг: 0 / 0
01.08.2014, 14:53
    #38710905
WebPrj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadman
Я и спросил, как передать через параметр. Пойду в гугл.
спс.
...
Рейтинг: 0 / 0
01.08.2014, 14:56
    #38710908
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
Galadriel75wadmanПоправил.
пропущено...


так не компилится - ругается на статик перед класс
Верно, я позже заметил. :)
...
Рейтинг: 0 / 0
01.08.2014, 14:59
    #38710915
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
WebPrjЯ и спросил, как передать через параметр. Пойду в гугл.
Исходники андродные-то у тебя должны быть, если сдк устанавливал...

Код: java
1.
2.
3.
public Intent(Context packageContext, Class<?> cls) {
        mComponent = new ComponentName(packageContext, cls);
    }
...
Рейтинг: 0 / 0
01.08.2014, 15:12
    #38710936
WebPrj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Toast вне Activity
wadman
А если под винду, то исходники винды?
Юмор не понял.
Спасибо что помог!
Так вроде работает.
спс.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
 public static void ShowMessage_Notification(Context cxt, Class<?> cls) {
    // Context.NOTIFICATION_SERVICE
    Intent notificationIntent = new Intent(cxt, cls);
    PendingIntent contentIntent = PendingIntent.getActivity(cxt,
            0, notificationIntent,
            PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationManager nm = (NotificationManager) cxt
            .getSystemService(Context.NOTIFICATION_SERVICE);

    Resources res = cxt.getResources();
    Notification.Builder builder = new Notification.Builder(cxt);

    builder.setContentIntent(contentIntent)
            .setWhen(System.currentTimeMillis())
            .setAutoCancel(true)

            .setSmallIcon(android.R.drawable.sym_action_email)
            .setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.ic_launcher))
            .setTicker("Ticker") // Подробнее под кодом ... res.getString(R.string.app_name)
            .setContentTitle("ContentTitle")// Текст заголовка уведомления при развернутой строке статуса
            .setContentText("ContentText");//Текст под заголовком уведомления при развернутой строке статуса

    Notification n = builder.build();// deprecated - builder. getNotification();
    nm.notify(NOTIFY_ID, n);
  }

...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Toast вне Activity / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]