2012-10-23 5 views
1

J'ai créé un bouton edittext et un bouton go et un webview en mode simple. Quand une personne entre une URL et clique sur le bouton aller, le webview devrait charger le contenu du site Web, au lieu de cela il va par défaut le navigateur pour charger le site Web comment dois-je slove ce problème?Comment charger WebView dans la même page

C'est mon code

fichier xml

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

<WebView 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginTop="50dip" /> 


<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 

    <EditText 
     android:id="@+id/etenterurl" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.0" 
     android:inputType="textUri" /> 

    <Button 
     android:id="@+id/buttongo" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="3.0" 
     android:text="Go" /> 
</LinearLayout> 


</FrameLayout> 

code java:

import java.util.ArrayList; 

import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebView; 
import android.widget.Button; 
import android.widget.EditText; 
import android.annotation.SuppressLint; 
import android.app.Activity; 


public class MainActivity extends Activity { 
EditText etenter; 
Button bgo; 
WebView webview; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    etenter= (EditText)findViewById(R.id.etenterurl); 
    bgo =(Button)findViewById(R.id.buttongo); 
    webview = (WebView)findViewById(R.id.webview); 
    bgo.setOnClickListener(new View.OnClickListener() { 

     @SuppressLint("SetJavaScriptEnabled") 
     @Override 
     public void onClick(View v) { 
      String url=etenter.getText().toString(); 
      if(url.trim().length()>0){ 
       webview.getSettings().setJavaScriptEnabled(true); 
       webview.loadUrl("http://"+url); 

      } 

     } 
    }); 


} 

}

+0

vous pouvez poster votre code .. – Nermeen

Répondre

4

Vous devez utiliser WebViewClient

wbView.setWebViewClient(new MyWebViewClient()); 

    private class MyWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
     Log.v("uuuurl",url); 
     view.loadUrl(url); 
     return true; 
    } 
} 

See here par exemple

+0

Il a travaillé, je vais avoir une autre question im donnant 50dp que la largeur pour la disposition linéaire et 50dp comme paddingTop pour webview, mais webview ne s'aligne pas en conséquence. – Anirudh

+0

Trail et erreur :). Vérifiez en faisant des changements de hauteur et de largeur – Abhi

+0

Essayé beaucoup, ne fonctionne pas du tout – Anirudh

2

vous devez utiliser WebViewClient

webview.setWebViewClient(new WebViewClient(){ 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 

       Log.d("TAG", " ==> "+url); 
       view.loadUrl(url); 
       return true;     
      } 

     }); 
Questions connexes