Если вам нужно открыть окно сообщения из класса без представления, у вас есть два решения:
Использовать обработчики: http://developer.android.com/reference/android/os/Handler.html
Создайте обработчик в вашем представлении, а затем передайте его вашему классу для хранения. Когда вы хотите позвонить в свой ящик сообщений, вы будете использовать
handler.post (new Runnable () {// показать окно сообщения здесь});
Или
- В вашем представлении Android, когда вы создаете экземпляр своего класса, передаете контекст конструктору вашего класса и затем сохраняете этот контекст. После этого вы сможете использовать его в своих почтовых ящиках.
Остерегайтесь утечек памяти в контексте передачи меканизма
РЕДАКТИРОВАТЬ:
Я писал код, чтобы научить вас использовать обработчики, когда я рискнул и пошел за документом. Обычно в этом нет ничего полезного, но для этого конкретного случая, о чудо, посмотрите, что я нашел, полный и простой для понимания пример кода того, как использовать обработчик и его механизм сообщений. Он скрыт под складным названием ("http://developer.android.com/guide/topics/ui/dialogs.html#ShowingAProgressBar"): http://developer.android.com/guide/topics/ui/dialogs.html#ShowingAProgressBar
РЕДАКТИРОВАТЬ 2 ПОСЛЕ КОММЕНТАРИЙ
Поскольку операционный орган хочет, чтобы его объект можно было повторно использовать в различных действиях, имеет смысл не использовать обработчики, а вместо этого передавать контекст (действительно, ссылку на вызывающее действие) объекту. Затем объект сможет использовать этот контекст в dialog.builder.
В созданном вами классе активности под названием 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, когда вы закончите с вашим объектом. Это может привести к очень быстрой утечке памяти.