Пользовательская домашняя страница WebView

#android #android-webview

#Android #android-webview

Вопрос:

У меня проблема с моим 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:

Сначала вы должны создать действие, которое расширит PreferenceActivity — http://developer.android.com/reference/android/preference/PreferenceActivity.html В этом действии пользователь сможет ввести URL.

В WebActivity добавьте код

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