我有 webview
默认加载 Youtube
. 然后我有一个 editview
和一个按钮 . 我想在 editview
中键入另一个网站 (for example:http://www.google.com)
,当我点击按钮时, webview
将更改为网站 . 但它会刷新并保持在 Youtube
. 我试图改变 onClick()
中的 setDesktopMode()
,它有效 . 请帮我 .
这是我的java代码 .
public class MainActivity extends AppCompatActivity {
String Url;
//Main code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Perform web view
final WebView webview = (WebView) findViewById(R.id.webview);
Url = "http://www.youtube.com";
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
//setContentView(webview);
webview.setWebViewClient(new WebViewClient());
webview.loadUrl(Url);
setDesktopMode(webview, true);
final EditText text1 = (EditText) findViewById(R.id.text1);
Button ok = (Button)findViewById(R.id.ok);
ok.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
Url = text1.getText().toString();
webview.clearCache(true);
webview.loadUrl(Url);
//webview.reload();
setDesktopMode(webview, true);
//return;
}
});
}
public void setDesktopMode(WebView webView, boolean enabled){
String newUserAgent = webView.getSettings().getUserAgentString();
if(enabled){
try{
String ua = webView.getSettings().getUserAgentString();
String androidOSString = webView.getSettings().getUserAgentString().substring(ua.indexOf("("), ua.indexOf(")") + 1);
newUserAgent = webView.getSettings().getUserAgentString().replace(androidOSString, "(X11; Linux x86_64)");
} catch (Exception e){
e.printStackTrace();
}
} else {
newUserAgent = null;
}
webView.getSettings().setUserAgentString(newUserAgent);
webView.getSettings().setUseWideViewPort(enabled);
webView.getSettings().setLoadWithOverviewMode(enabled);
webView.reload();
}
}
1 回答
嗨刚刚在上面的代码中做了一些更改 .
在set桌面方法中删除重新加载行 .
它的工作现在很完美 .