Reputation: 724
i want to open url through browser but when i click on button it does not open the url please tell me where i made mistake. here is the code of java file.
public class MainActivity extends AppCompatActivity {
Button button;
EditText editText;
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.but);
editText = (EditText)findViewById(R.id.edittext);
webView = (WebView)findViewById(R.id.webView);
}
public void Goo(View view){
String url = editText.getText().toString();
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
}
}
here is xml file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enter url"
android:id="@+id/textView"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edittext"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="Goo"
android:text="Go"
android:id="@+id/but"
/>
<WebView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/webView" />
</LinearLayout>
when i click on button it does not open the page and in the logcat it show message like this
Upvotes: 1
Views: 216
Reputation: 1861
In activity just copy paste the following code...
public class MainActivity extends AppCompatActivity {
Button button1, button2;
EditText editText;
WebView webView;
String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button)findViewById(R.id.but);
button2 = (Button)findViewById(R.id.but1);
editText = (EditText)findViewById(R.id.edittext);
webView = (WebView)findViewById(R.id.webView);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
url=editText.getText().toString();
url="http://"+url;
loadUrl(url);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
url="http://www.stackoverflow.com";
loadUrl(url);
}
});
}
public void loadUrl(String url) {
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setVisibility(View.VISIBLE);
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
}
and in manifest file.. add these two lines..
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
In xml, I added,
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go"
android:id="@+id/but"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="fb"
android:id="@+id/but1"
/>
Upvotes: 2
Reputation: 1353
Try this. In your onCreate
:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// call your Goo method here
}
});
Upvotes: 0