Tôi đã có thời gian khó khăn nhất với lỗi này, vì hoàn cảnh độc đáo của tôi, nhưng cuối cùng đã tìm ra giải pháp.
Tình huống của tôi: Tôi đang sử dụng một chế độ xem riêng (XML) chứa một WebView
, sau đó mở ra AlertDialog
khi tôi nhấp vào nút trong chế độ xem hoạt động chính của mình. Nhưng bằng cách này hay cách khác WebView
thuộc về chế độ xem hoạt động chính (có thể do tôi lấy tài nguyên từ đây), vì vậy ngay trước khi tôi gán nó cho AlertDialog
(như một chế độ xem), tôi phải đưa cha mẹ của mình WebView
, đặt nó vào ViewGroup
, sau đó loại bỏ tất cả các quan điểm về điều đó ViewGroup
. Điều này đã làm việc, và lỗi của tôi đã biến mất.
// 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...
.... sau này sau khi tôi tải 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();