Ho classe che si estende da un View
e sto cercando di mostrare un popupWindow
utilizzando questo codicechiamando showAtLocation di PopupWindow si blocca l'applicazione
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);
}
}
La mia applicazione si blocca quando si tenta di eseguire tale ultima riga. Il messaggio di eccezione è
Impossibile creare il gestore di filettatura interna che non ha chiamato Looper.prepare()
Ho cercato risposte relative a quel messaggio e tutti loro coinvolgimento che il popup è stato creato su un thread separato e che dovrei usare runOnUIThread
ma se mi trovo all'interno di VIEW ho bisogno di questo? Quale può essere la causa di questo problema?
lei ha detto, avendo un errore come "Impossibile creare gestore filettatura interna che non ha chiamato Looper.prepare()", ma dove si parla di codice circa l'uso di "Handler". per favore mi spieghi correttamente con il tuo codice fatto in modo da poter provare per te. –