Reputation: 1111
I currently have 4 buttons, one will open a web browser using Intent. I want to open the browser using webview. I have seen the code for this but I am not sure how to implement it.
If I use this code:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new MyWebViewClient());
and change the xml file to include WebView, it adds this to the current home screen which I don't want. I only want to use WebView once the user has clicked the button. How do I do this?
xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/android"
>
<ScrollView
android:id="@+id/settingsScrollView"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
</ScrollView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/Info"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Info"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
<Button
android:id="@+id/Search"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Search"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/Facebook"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Facebook"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
<Button
android:id="@+id/Twitter"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Twitter"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
</LinearLayout>
MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.Search);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
myWebLink.setData(Uri.parse("http://www.google.com"));
startActivity(myWebLink);
}
});
}
Upvotes: 0
Views: 2730
Reputation: 608
You can do as follows:
your activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/android" >
<ScrollView
android:id="@+id/settingsScrollView"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
</ScrollView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/Info"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Info"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
<Button
android:id="@+id/Search"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Search"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/Facebook"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Facebook"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
<Button
android:id="@+id/Twitter"
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/Twitter"
android:background="@drawable/button_colour"
android:textSize="14sp"
android:textStyle="bold"
/>
webview.xml
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
MainActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.Search);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
startActivity(intent);
}
});
}
WebViewActivity
public class WebViewActivity extends Activity {
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.google.com");
}
Upvotes: 5
Reputation: 4683
You need to create seprate Activity
then to show only WebView
and pass Intent Extra's
on Button
Click:
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
MainActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.Search);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("Url","http://www.google.com" )
startActivity(intent);
}
});
}
WebViewActivity
public class WebViewActivity extends Activity {
private WebView webView;
String url;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
Intent i = getIntent();
url = i.getStringExtra("Url");
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(Uri.parse(url));
}
Upvotes: 0