D'accord. J'ai regardé PARTOUT et mon petit cerveau ne peut tout simplement pas comprendre une meilleure façon de rafraîchir une activité. Toutes les suggestions que je peux comprendre seraient formidables. :)
Voici le code Java:
package com.dge.dges;
import Android.app.Activity;
import Android.content.Intent;
import Android.os.Bundle;
import Android.view.View;
import Android.webkit.WebView;
import Android.widget.Button;
public class dgeActivity extends Activity {
WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings();
mWebView.loadUrl("http://www.websitehere.php");
Button newButton = (Button)findViewById(R.id.new_button);
newButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(dgeActivity.this, dgeActivity.class);
startActivity(intent);
}
});
}
}
Et voici le main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/RelativeLayout"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="#000000"
>
<WebView
Android:id="@+id/webview"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:scrollbars="none"
/>
<Button
Android:id="@+id/new_button"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
Android:text="Refresh"
/>
</RelativeLayout>
Je n'aime pas l'idée de simplement ré-empiler activité après activité. Il doit y avoir un moyen plus simple de rafraîchir la vue Web. Veuillez aider. :)
1) Si vous souhaitez recharger la même URL:
mWebView.loadUrl("http://www.websitehere.php");
de sorte que le code complet serait
newButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dgeActivity.this.mWebView.loadUrl("http://www.websitehere.php");
}});
2) Vous pouvez également appeler mWebView.reload()
mais sachez que cela repositionne une page si la requête était POST, donc ne fonctionne correctement qu'avec GET.
Vous pouvez appeler une mWebView.reload();
C'est ce que ça fait
La meilleure solution est de faire simplement webView.loadUrl( "javascript:window.location.reload( true )" );
. Cela devrait fonctionner sur toutes les versions et n'introduit pas de nouvelles entrées d'historique.
Cela a fonctionné pour moi.
il suffit de mettre sous le métode onCreate
Button button = (Button) findViewById(R.id.reload_btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
web.loadUrl( "javascript:window.location.reload( true )" );
}
});
Ceci est le code qui peut recharger un site Web dans une vue Web
web.loadUrl( "javascript:window.location.reload( true )" );
essaye ça :
mWebView.loadUrl(mWebView.getUrl().toString());
L'actualisation de l'URL de la vue Web actuelle n'est pas une utilisation courante.
J'ai utilisé ceci dans un tel scénario: Lorsque l'utilisateur passe à une autre activité et que l'utilisateur revient à l'activité de Webview, je recharge l'URL actuelle comme ceci:
public class MyWebviewActivity extends Activity {
WebView mWebView;
....
....
....
@Override
public void onRestart() {
String url = mWebView.getUrl();
String postData = MyUtility.getOptionsDataForPOSTURL(mContext);
mWebView.postUrl(url, EncodingUtils.getBytes(postData, "BASE64"));
}
}
Vous pouvez également utiliser la fonction reload()
de WebView. Mais notez que si vous avez chargé la vue Web avec postUrl()
, alors mWebView.reload();
ne fonctionne pas. Cela fonctionne aussi
String webUrl = webView.getUrl();
mWebView.loadUrl(webUrl);