如果你需要從非視圖類打開一個消息那麼你有兩個解決方案:
或者
- 從你的Android設備上查看,當實例類,傳遞一個上下文類的構造函數,然後存儲此背景下。您可以在警報箱中使用它。
要與上下文傳遞mecanism小心內存泄漏的
編輯:
我在寫一些代碼來讓你去如何使用處理程序時,我花了一個機會,去了文件。通常沒有任何用處,但對於這種特殊情況,哦奇蹟,看看我發現的,完整和易於理解的代碼示例如何使用處理程序及其消息機制。 http://developer.android.com/guide/topics/ui/dialogs.html#ShowingAProgressBar
EDIT2後方可評論
由於運:這是下的可摺疊標題( 「http://developer.android.com/guide/topics/ui/dialogs.html#ShowingAProgressBar」)隱藏希望它的對象可以在不同的活動中重用,所以不需要使用處理程序,而是將上下文(真正的調用活動的鏈接)傳遞給對象。該對象將能夠在dialog.builder中使用該上下文。
在您的活動類的所謂MyActivity的OnCreate中:
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
}
}
不要忘了銷燬廢棄的對話框Builder和mContext當你與完成你的對象。這可能會非常快地泄漏內存。
getParent在視圖內返回一個ViewParent對象,該對象不能用於對話框顯示。我也嘗試通過構造函數將該活動傳遞到類中,並使用getParent來處理那些不起作用的... – 2012-02-06 14:43:03