问题描述
||
我仍在学习Java。我正在尝试使用SharedPreferences在WebView中设置URL,以便可以设置下次启动应用程序时显示的页面。
并尝试使用菜单设置/更改值。
这是我到目前为止的内容:
public class test extends Activity {
public static final String PREFS_NAME = \"SharedPreferences\";
public static final String PREF_STRING = \"http://www.google.com\";
private SharedPreferences mPrefs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPrefs = getSharedPreferences(PREFS_NAME,0);
webview = new WebView(this) {
};
webChromeClient = new WebChromeClient() {
};
webview.setWebChromeClient(webChromeClient);
webview.setWebViewClient(webViewClient);
setContentView(webview);
/** Load the browser Settings */
webview.loadUrl(PREF_STRING);
SharedPreferences settings = getSharedPreferences(\"StartPage\",0);
settings.getString(\"PREF_STRING\",\"http://www.google.com\");
}
/** Begin Globals */
public WebView webview;
public WebChromeClient webChromeClient;
public WebViewClient webViewClient;
/*** define menu options */
private static final int MENU_PAGE1 = 1;
private static final int MENU_PAGE2 = 2;
/*** menu items */
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,MENU_PAGE1,\"Set page 1 to show when app is started\");
menu.add(0,MENU_PAGE2,\"Set page 2 to show when app is started\");
return true;
}
public boolean onoptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_PAGE1:
Editor e = mPrefs.edit();
e.putString(PREF_STRING,\"http://www.yahoo.com\");
e.commit();
Toast.makeText(this,\"Page 1 is set!\",Toast.LENGTH_SHORT).show();
return true;
}
switch (item.getItemId()) {
case MENU_PAGE2:
Editor e = mPrefs.edit();
e.putString(PREF_STRING,\"http://www.ask.com\");
e.commit();
Toast.makeText(this,\"Page 2 is set!\",Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
}
到目前为止还很近...有任何提示或想法吗?
解决方法
Try this:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mPrefs = getSharedPreferences(PREFS_NAME,0);
webview = new WebView(this) {
};
webChromeClient = new WebChromeClient() {
};
webview.setWebChromeClient(webChromeClient);
webview.setWebViewClient(webViewClient);
setContentView(webview);
/* Load the last saved preference. */
webview.loadUrl(mPrefs.getString(PREF_STRING,\"http://www.google.com\"));
}