LinearLayout onclick打开WebView而不是浏览器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinearLayout onclick打开WebView而不是浏览器相关的知识,希望对你有一定的参考价值。

我目前有4个按钮,一个将使用Intent打开Web浏览器。我想用webview打开浏览器。我已经看到了这个代码,但我不知道如何实现它。

如果我使用此代码:

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new MyWebViewClient());

并更改xml文件以包含WebView,它将此添加到我不想要的当前主屏幕。我只想在用户点击按钮后使用WebView。我该怎么做呢?

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);
         }
    });
}
答案

你可以这样做:

你的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" />

主要信息

 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");

}
另一答案

你需要创建单独的qazxsw poi然后只显示qazxsw poi并在Activity上传递WebView点击:

Intent Extra's

主要信息

Button

WebViewActivity

 <?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" />

以上是关于LinearLayout onclick打开WebView而不是浏览器的主要内容,如果未能解决你的问题,请参考以下文章

OnClickListener onClick=true 和选择器

如果将 Webview 作为子项,则布局 onClick 事件不起作用

OnClick 自定义视图不起作用

Android:对超过 1 个按钮使用带有 setOnClickListener/onClick 的 SWITCH 语句?

Android:通过控制器添加带有 ids/onclick 的新布局元素

如何为按钮应用彩色动画?