Comment puis-je définir L'URL pour WebView à partir de layout XML dans Android?
J'essaie de définir L'URL d'un WebView à partir de la mise en page principale.XML.
Par code, c'est simple:
WebView webview = (WebView)findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/index.html");
Existe-t-il un moyen simple de mettre cette logique dans le fichier XML de mise en page?
28
demandé sur
Pang
2011-03-07 15:37:29
2 réponses
Puisque L'URL est essentiellement une chaîne, vous pouvez la mettre dans values / strings.fichier xml
<resources>
<string name="myurl">http://something</string>
</resources>
Ensuite, vous pouvez l'utiliser comme ceci:
WebView webview = (WebView)findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl(getString(R.string.myurl));
-2
répondu
Peter Knego
2011-03-07 12:49:30
Vous pouvez déclarer votre vue personnalisée et appliquer des attributs personnalisés comme décrit ici .
Le résultat ressemblerait à ceci:
Dans votre mise en page
<my.package.CustomWebView
custom:url="@string/myurl"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
Dans votre attr.xml
<resources>
<declare-styleable name="Custom">
<attr name="url" format="string" />
</declare-styleable>
</resources>
Enfin dans votre classe de vue Web personnalisée
public class CustomWebView extends WebView {
public CustomWebView(Context context, AttributeSet attributeSet) {
super(context);
TypedArray attributes = context.getTheme().obtainStyledAttributes(
attributeSet,
R.styleable.Custom,
0, 0);
try {
if (!attributes.hasValue(R.styleable.Custom_url)) {
throw new RuntimeException("attribute myurl is not defined");
}
String url = attributes.getString(R.styleable.Custom_url);
this.loadUrl(url);
} finally {
attributes.recycle();
}
}
}
3
répondu
loklok
2017-03-22 10:39:25