У меня было самое трудное время с этой ошибкой из-за моих уникальных обстоятельств, но в конце концов я нашел решение.
Моя ситуация: я использую отдельное представление (XML), которое содержит WebView
, а затем открывается в AlertDialog
, когда я нажимаю кнопку в моем основном представлении активности. Но так или иначе WebView
принадлежал к основному виду деятельности (вероятно, потому что я извлекаю ресурс отсюда), поэтому прямо перед тем, как я назначил его для моего AlertDialog
(как представление), мне нужно было получить родителя моего WebView
, поместите его в ViewGroup
, затем удалите все представления на этом ViewGroup
. Это сработало, и моя ошибка ушла.
// set up Alert Dialog box
AlertDialog.Builder alert = new AlertDialog.Builder(this);
// inflate other xml where WebView is
LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
View v = layoutInflater.inflate(R.layout.your_webview_layout, null);
final WebView webView = (WebView) v.findViewById(R.id.your_webview_id);
// more code...
.... позже после того, как я загрузил WebView
....
// first, remove the parent of WebView from it's old parent so can be assigned a new one.
ViewGroup vg = (ViewGroup) webView.getParent();
vg.removeAllViews();
// put WebView in Dialog box
alert.setView(webView);
alert.show();