WebView自定义主页

时间:2011-11-13 18:02:43

标签: android android-webview

我的网页视图和自定义主页存在问题。我希望用户在首选项页面中输入URL,因此它将自动成为webview主页。

这是我的preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
  <PreferenceCategory 
    android:title="URL"
    android:key="URL_CAT">
    <EditTextPreference
        android:key="URL_HERE"
        android:title="School/Uni URL" 
        android:summary="Your School's Homepage"
        android:dialogTitle="Moodle URL"
        android:dialogMessage="Type your school's URL for a shortcut."  
        android:defaultValue="http://" />
  </PreferenceCategory>
</PreferenceScreen>

这是我的WebActivity.java

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    setContentView(R.layout.webview);
    WebView webView = (WebView) findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
    webView.setWebChromeClient(new WebChromeClient() {


        public void onProgressChanged(WebView view, int progress)
        {
            activity.setTitle("Loading...");
            activity.setProgress(progress * 100);

        }

    });

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
        {

        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);
            return true;
        }
    });

    webView.loadUrl("http://test.com"); <--- I need the user data here
}

1 个答案:

答案 0 :(得分:0)

首先,您应该创建将扩展PreferenceActivity的活动 - http://developer.android.com/reference/android/preference/PreferenceActivity.html 在此活动中,用户可以输入网址。

在WebActivity中添加代码

SharedPreferences prefs = getSharedPreferences();
try {
    url = prefs.getString(KEY, defaultValue).toString();
} catch (ClassCastException e) {
    e.printStackTrace();
}