You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:点击Fragment中CardView在WebView打开指定网页

实现方案:Fragment中CardView点击跳转WebView加载对应URL

一、布局文件关键确认

先确保你的fragment1_layout.xml里每个CardView都有唯一id(比如card_view1、card_view2),activity_web_viewer.xml里的WebView也要设置唯一id(比如web_view),这样才能在代码中精准绑定控件。

二、补全Fragment1.java的点击事件逻辑

在Fragment的onViewCreated方法中,绑定CardView并设置点击监听,通过Intent传递对应URL到WebView页面:

public class Fragment1 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment1_layout, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        // 绑定第一个CardView并设置点击事件
        CardView cardView1 = view.findViewById(R.id.card_view1);
        cardView1.setOnClickListener(v -> {
            Intent intent = new Intent(getActivity(), WebViewActivity.class);
            intent.putExtra("WEB_URL", "https://www.example1.com"); // 替换为目标网页URL
            startActivity(intent);
        });

        // 绑定第二个CardView并设置点击事件
        CardView cardView2 = view.findViewById(R.id.card_view2);
        cardView2.setOnClickListener(v -> {
            Intent intent = new Intent(getActivity(), WebViewActivity.class);
            intent.putExtra("WEB_URL", "https://www.example2.com"); // 替换为目标网页URL
            startActivity(intent);
        });
    }
}

三、实现WebViewActivity加载逻辑

创建WebViewActivity.java类,接收传递的URL并配置WebView加载网页:

public class WebViewActivity extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_viewer);

        webView = findViewById(R.id.web_view);

        // 配置WebView基础设置
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true); // 网页需JS支持时开启,否则可关闭提升安全性
        webSettings.setDomStorageEnabled(true);

        // 设置WebViewClient,避免跳转至系统浏览器
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                view.loadUrl(request.getUrl().toString());
                return true;
            }
        });

        // 获取传递的URL并加载
        String targetUrl = getIntent().getStringExtra("WEB_URL");
        if (targetUrl != null && !targetUrl.isEmpty()) {
            webView.loadUrl(targetUrl);
        }
    }

    // 处理返回键,优先让WebView回退页面
    @Override
    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

四、配置AndroidManifest.xml

添加网络权限并注册WebViewActivity:

<!-- 声明网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />

<application ...>
    <!-- 注册WebViewActivity -->
    <activity android:name=".WebViewActivity" />
</application>

五、额外注意点

  • 若你的App运行在Android 11+且访问HTTP网址,需在application标签中添加android:usesCleartextTraffic="true",建议优先使用HTTPS网址。
  • 确保所有控件id唯一,避免出现控件绑定失败或点击事件混乱的问题。

内容的提问来源于stack exchange,提问作者Dhiraz Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:40:07