我对android中的编码很新。我正在为游戏DOTA 2制作一个伴侣应用程序。布局有很多按钮,我想利用Webview功能为不同的英雄加载不同的网页。教程似乎表明只能打开一个网页。我必须创建数百页来容纳不同的英雄。
问题:
按下后如何让每个按钮打开一个不同的页面?
当前代码:
WebView webView = (WebView) findViewById(R.id.webview);
webView.loadUrl("http://dota2.gamepedia.com/Abaddon");
我需要打开113个网页,这些网页对应不同的英雄。
我希望这不是一个过载而且并非不可能。
答案 0 :(得分:0)
首先,它不是一个愚蠢的问题。你知道一些HTML吗?因为你可以通过JS的html打开所有113个网页来创建更少的html页面。你能告诉我你的mainActivity.java吗?
您需要将MainActivity编辑为:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
公共类StrHeroInfo扩展了AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_str_hero_info);
WebView swebView = (WebView) findViewById(R.id.web_str_hero);
swebView.loadUrl("http://dota2.gamepedia.com/Abaddon");
swebView.setWebViewClient(new WebViewClient());
}
@Override
public void onWindowFocusChanged(boolean hasFocas) {
super.onWindowFocusChanged(hasFocas);
View decorView = getWindow().getDecorView();
if (hasFocas) {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url.startsWith("mailto:") || url.startsWith("mms:") || url.startsWith("mmsto:") || url.startsWith("market:")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
else {
view.loadUrl(url);
return true;
}
}
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) {
view.goBack(); //method goback()
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Explenation
为什么函数shouldOverrideUrlLoading:
您需要此功能,否则您无法在网页浏览中加载任何其他网页。
为什么函数onKeyDown:
如果您希望人们可以在手机上使用密钥,则需要此功能:
您需要做的只是单击转到其他页面的图像?