第二阶段个人冲刺记录06
今天:主要进行点击列表查看新闻详情
明天:对整体在进行一些调整
布局activity_news_details.xml,里面的代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:orientation="vertical"> <!--标题--> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="match_parent" app:navigationIcon="@mipmap/icon_back" android:layout_height="?attr/actionBarSize" android:background="@color/white"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="新闻详情" android:textColor="@color/black" android:textSize="18sp" /> </com.google.android.material.appbar.MaterialToolbar> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
NewsDetailsActivity页面的代码了,如下所示
/** * 新闻详情页面 */ public class NewsDetailsActivity extends BaseActivity { private Toolbar toolbar; private WebView webView; @Override public void initData(Bundle savedInstanceState) { toolbar = findViewById(R.id.toolbar); webView = findViewById(R.id.web_view); back(toolbar, false); //设置状态栏 setStatubar(this, R.color.white, true); //加载WebView loadWebView(); } /** * 加载webView */ @SuppressLint("SetJavaScriptEnabled") private void loadWebView() { //开始加载Url showLoadingDialog(); String url = getIntent().getStringExtra("url"); if (url == null || url.isEmpty()) { showMsg("无法显示新闻详情"); return; } //声明WebSettings子类 WebSettings webSettings = webView.getSettings(); //如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript webSettings.setJavaScriptEnabled(true); //支持插件 //设置自适应屏幕,两者合用 webSettings.setUseWideViewPort(true);//将图片调整到适合webview的大小 webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小 //缩放操作 webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。 webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放 webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件 //其他细节操作 webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存 webSettings.setAllowFileAccess(true); //设置可以访问文件 webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口 webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片 webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式 //优先使用缓存 webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //加载一个网页 webView.loadUrl(url); //重写shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示 webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { //加载完成 hideLoadingDialog(); } }); } @Override public int getLayoutId() { return R.layout.activity_news_details; } }
回到MainActivity,在initView方法中,修改点击列表item时触发的代码。
mAdapter.setOnItemChildClickListener((adapter, view, position) -> { //跳转到新闻详情页面 Intent intent = new Intent(context, NewsDetailsActivity.class); intent.putExtra("url", mList.get(position).getUrl()); startActivity(intent); });
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!