Если вам нужно открыть окно сообщения из класса без представления, у вас есть два решения:
Or
- С вашего представления Android, когда вы создаете экземпляр своего класса, передайте контекст конструктору вашего класса, а затем сохраните этот контекст. После этого вы сможете использовать его в своих окнах предупреждений.
Будьте осторожны с утечками памяти с механизмом передачи контекста
ИЗМЕНИТЬ:
Я писал код, чтобы вы могли понять, как использовать обработчики, когда рискнул и взял документ. Обычно там нет ничего полезного, но в этом конкретном случае, о чудо, посмотрите, что я нашел, полный и простой для понимания пример кода того, как использовать обработчик и его механизм сообщений. Он скрыт под складным заголовком ("http://developer.android.com/guide/topics/ui/dialogs.html#ShowingAProgressBar"): http://developer.android.com/guide/тем/ui/dialogs.html#ShowingAProgressBar
EDIT2 ПОСЛЕ КОММЕНТАРИЙ
Поскольку оператор хочет, чтобы его объект можно было повторно использовать в различных действиях, имеет смысл не использовать обработчики, а вместо этого передавать контекст (фактически ссылку на вызывающее действие) объекту. Затем объект сможет использовать этот контекст в dialog.builder.
В oncreate вашего класса активности с именем MyActivity :
MyCustomObject myObject = new MyCustomObject(this);
В вашем классе объектов
Class MyCustomObject {
private MyActivity mContext;
void MyCustomObject(MyActivity context) {
this.mContext = context;
}
private showDialog(String message) {
AlertDialog.Builder alert = new AlertDialog.Builder(mContext);//we use the context
}
}
НЕ ЗАБУДЬТЕ УНИЧТОЖИТЬ И ОБНУЛИТЬ ДИАЛОГОВЫЙ КОНСТРУКТОР И mContext, когда закончите со своим объектом. Это может очень быстро привести к утечке памяти.
person
Yahel
schedule
03.02.2012