2013-07-06 17 views
8

Kiedy po raz pierwszy tworzę aktywność, wszystko idzie dobrze. Jednak po tym, jak wybrać z menu, aby zmienić tekst z wartości Smyczkowych i ustawić webview przezMusiałem załadować dane dwa razy, aby odświeżyć WebView w Androidzie

webview.loadData(result, "text/html; charset=UTF-8", null); 
webview.loadData(result, "text/html; charset=UTF-8", null); 

muszę zrobić to dwa razy, lub WebView utrzyma niezmienione. Czy jest ktoś, kto wie, co się tutaj dzieje? Ponieważ wynik String jest taki sam, dlaczego przeglądarka zmusza mnie do załadowania Data dwukrotnie?

+0

Mam dokładnie ten sam problem. Czy znalazłeś sposób, aby to naprawić? – Javide

+0

Nie, po prostu ładuję go dwa razy. Ponieważ lepiej jest nie pokazywać właściwej rzeczy. Myślę, że może jest to związane z pamięcią podręczną. Więc jeśli masz czas, spróbuj 'public void clearCache (boolean includeDiskFiles)' lub 'public void clearHistory()' i zobacz czy to działa. Po prostu nie mam czasu, aby to przetestować, ponieważ jestem zajęty robieniem czegoś innego. Więc proszę powiedz mi, czy działają, czy nie. Dziękuję Ci. –

+0

Znalazłem problem, który miał wpływ na moją sprawę. Mój WebView jest wydziałem ViewSwitcher. Umieściłem WebView w LinearLayout i to właśnie powodowało, że WebView nie wyświetlał się przy pierwszym załadowaniu. Usunięcie LinearLayout rozwiązało problem. – Javide

Odpowiedz

0

Nie wiem jaki jest twój problem, ale patrząc na dokumentacji Webview, używasz metody loaddata błędnie:

Webview:loadData documentation

Prawdopodobnie powinien zadzwonić do WebView tak:

webview.loadData(result, "text/html", "UTF-8"); 

Nie wiem, czy to rozwiąże Twój problem.

+1

Niestety, twoja odpowiedź nie jest nawet bliska. Po prostu przejdź do tłumaczenia google i napisz coś w swoim własnym języku, a następnie przetłumacz je na chiński lub japoński. Następnie skopiuj te znaki do twojego projektu i porównaj nasze kody, a zobaczysz, że mój webview jest taki sam, jak tłumaczenie google, a twoje ma złe znaki. –

+0

Rzeczywiście, moja odpowiedź jest absolutnie błędna: D ostatni parametr jest dla typu kodowania jak Base64 lub ASCII. Przykro mi, nie mogę Ci pomóc z twoim problemem:/ – Benoit

+0

Jest OK. Zrobiłem ten błąd w moim kodzie, tak jak przedtem. Wciąż dziękuję za twój wysiłek. Proszę jednak usunąć odpowiedź z powrotem do 0, jeśli to ty ją oznaczyłeś. Moja reputacja nie wystarcza, aby przywrócić ją do 0. –