我是关于Android开发的新手,但我无法理解代码,我只是不知道在哪里添加WebView代码。
我的源代码,片段和每个片段的XML,但是在哪里添加webview以加载每个片段的本地HTML?,在尝试以离线模式写入GameGuide时,我已经在HTML中使用它只需要放入它在守则内。
谢谢你:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/WebViewHeroes" />
</LinearLayout>
}
修改
阅读后我发现了错误,每次重叠我的新布局时都会调用HOME(默认布局)。
创建了heroes.xml并通过deafult调用它,然后将代码更改为加载URL,编码完成就在这里
public class HeroesFragment extends Fragment {
public HeroesFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.heroes, container, false);
WebView heroespage = (WebView) rootView.findViewById(R.id.heroeswiki);
heroespage.loadUrl("file:///android_asset/hola.html");
return rootView;
}
}
答案 0 :(得分:0)
在Fragment
中获得View rootView
变量后的onCreateView()
中,执行以下操作:
// Get your HTML
String yourHTML = "<p>Some <b>html</b> you have somewhere</p>";
// Get a handle on your webview
WebView webViewHeroes = (WebView) root.findViewById(R.id.WebViewHeroes);
// Populate webview with your html
webViewHeroes.loadData(yourHTML, "text/html", null);
修改强>
我的回答是使用带有HTML的字符串。您实际上想要将html文件加载到webview中(这是不同的)。
所以,改为使用:
// Populate webview with your html
webViewHeroes.loadUrl("file:///android_asset/hola.html");
答案 1 :(得分:0)
所以在HeroesFragment的getView()
中,您可以执行以下操作
if (rootView){
WebView v = (WebView)rootView.findViewById(R.id.WebViewHeroes);
}
然后你可以随心所欲地做任何你想做的事。
答案 2 :(得分:0)
我发现我得到了最好的结果:
String HTML = "Some HTML resource";
WebView webView = new WebView(getActivity());
WebSettings settings = webView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
webView.loadDataWithBaseURL(null, HTML, "text/html", "utf-8", null);
需要使用设置部分来显示特殊字符。
在上面的示例中,我动态生成WebView,然后将其添加到我的布局中。对于您的情况,代码应如下所示:
public class HeroesFragment extends Fragment {
public HeroesFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.home, container, false);
WebView webView = (WebView)rootView.findViewById(R.id.webViewHeroes);
String HTML = "Some HTML resource";
WebSettings settings = webView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
webView.loadDataWithBaseURL(null, HTML, "text/html", "utf-8", null);
return rootView;
}
现在我不知道你是否计划在同一个片段中显示几个不同的HTML页面,但是你只需要用另一个HTML资源发布loadDataWithBaseURL
。
此外,如果您需要支持javascript,缩放等,则必须在加载前将这些设置添加到WebView。