我有一個從View
擴展類,我試圖用這個代碼試圖執行最後一行時調用popupwindow的showAtLocation崩潰的應用程序
public class dbView extends View implements View.OnTouchListener {
private void showDialog(String msg) {
LayoutInflater layoutInflater;
View dialogContent;
final PopupWindow popupWindow;
layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dialogContent = layoutInflater.inflate(R.layout.pop_up_dialog, null);
popupWindow = new PopupWindow(
dialogContent,
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.showAtLocation(this, Gravity.CENTER, 10, 10);
}
}
我的應用程序崩潰,顯示一個popupWindow
。異常的消息是
無法創建內螺紋)處理器已經不叫 Looper.prepare(
我一直在尋求與該消息的答案,他們都涉及到彈出窗口正在單獨的線程上創建,我應該使用 runOnUIThread
但如果我在查看我需要這個嗎?造成這個問題的原因是什麼?
你說過,有一個錯誤,如「不能創建處理程序內部線程沒有調用Looper.prepare()」,但你在哪裏提到關於使用「處理程序」的代碼。請用你完成的代碼解釋我的意思,所以我可以爲你嘗試。 –