मैंने एक छोटी गतिविधि बनाई है जो एक वेबव्यू में दो अलग-अलग HTML स्ट्रिंग लोड करने में सक्षम है। जब मैं गतिविधि चलाता हूं तो यह स्ट्रिंग को पृष्ठ_1 चर से लोड करके शुरू होता है। अब तक सब ठीक है। पृष्ठ अपेक्षित के रूप में दिखाता है। मैंने एक ऑनफ्लिंग श्रोता जोड़ा है जो गतिविधि को पृष्ठ_2 चर की सामग्री को लोड करना चाहिए। समस्या यह है कि भले ही ऑनफलिंग कहा जाता है और loadUrl को वेबव्यू कहा जाता है, अपडेट नहीं किया जाता है?WebView दूसरी बार अपना HTML लोड नहीं करता है?
मेरे गतिविधि इस तरह दिखता है:
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.webkit.WebView;
public class Test extends Activity {
private GestureDetector mGestureDetector;
private WebView mWebView;
private int mPageIndex;
private static final String page_1 = "<html><body>Hello page 1</body></html>";
private static final String page_2 = "<html><body>Hello page 2</body></html>";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.loadData(page_1, "text/html", "utf-8");
setupGestureDetection();
mPageIndex = 0;
}
private void setupGestureDetection() {
mGestureDetector = new GestureDetector(new MyGestureDetector());
mWebView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
});
}
class MyGestureDetector extends GestureDetector.SimpleOnGestureListener {
private static final int SWIPE_DISTANCE_THRESHOLD = 120;
private static final int SWIPE_VELOCITY_THRESHOLD = 200;
private boolean isHorizontalSwipe(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
if (Math.abs(e1.getX() - e2.getX()) > SWIPE_DISTANCE_THRESHOLD) {
return true;
}
}
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (isHorizontalSwipe(e1, e2, velocityX, velocityY)) {
if (e1.getX() > e2.getX()) {
// Right to left
if (++mPageIndex % 2 == 0) {
mWebView.loadData(page_1, "text/html", "utf-8");
} else {
mWebView.loadData(page_2, "text/html", "utf-8");
}
return true;
}
}
return false;
}
}
}
मेरे लेआउट इस तरह दिखता है:
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
मुझे आशा है कि कोई मेरी मदद कर सकते हैं! :-)
सादर
स्टिग एंडरसन
आप अगर आप एक [WebChromeClient] (http जोड़ने वेब कंसोल से त्रुटि उत्पादन प्राप्त कर सकते हैं के लिए एक हैंडलर का उपयोग कर रहे हैं उन: // डेवलपर .android.com/संदर्भ/एंड्रॉयड/वेबकिट/WebChromeClient.html)। 'mWebView.setWebChromeClient (नया WebChromeClient());' इसे करना चाहिए। – dokkaebi
इसके अलावा, आप कैसे जानते हैं कि लोडडेटा कॉल किए जा रहे हैं? क्या आप डीबगर के साथ आगे बढ़ रहे हैं? प्रिंट लॉग संदेश? – dokkaebi