二阶段团队冲刺(6)
今日代码实现
新闻功能顺利实现,答题功能马上实现
首先新闻功能
NewsDetailsActivity页面的代码了,如下所示: package com.llw.goodtrash.ui; import android.annotation.SuppressLint;import android.os.Bundle;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import androidx.appcompat.widget.Toolbar;import com.llw.goodtrash.R;import com.llw.mvplibrary.base.BaseActivity; /** * 新闻详情页面 */ 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; }}
简单的配置WebView,在MainActivity中,在initView方法中,修改点击列表item时触发的代码。 mAdapter.setOnItemChildClickListener((adapter, view, position) -> { //跳转到新闻详情页面 Intent intent = new Intent(context, NewsDetailsActivity.class); intent.putExtra("url", mList.get(position).getUrl()); startActivity(intent); });
新闻功能顺利实现,显示实时新闻
答题功能
package com.llw.goodt.adapter; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter; import java.util.ArrayList; import java.util.List; public class DaTiAdapter extends FragmentPagerAdapter { private List<Fragment> mFragmentList = null; public DaTiAdapter(@NonNull FragmentManager fm, List<Fragment> fragmentList) { super(fm); mFragmentList = fragmentList; } @NonNull @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } }
<?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" tools:context=".Fragment.DaTiFragment" android:orientation="vertical"> <!-- 棰樼洰绫诲瀷--> <!-- 棰樼洰鏍囬--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginLeft="40dp"> <TextView android:id="@+id/tv_question" android:layout_width="wrap_content" android:layout_height="70dp" android:text="3銆佲€濅竴浜?涔濃€滆繍鍔ㄥ彂鐢熷湪 ( ) 骞寸殑鍖楀钩銆? android:textColor="@color/black" android:textSize="17sp"/> </LinearLayout> <!-- 棰樼洰閫夐」--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:id="@+id/ll_a" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="30dp"> <ImageView android:id="@+id/iv_a" android:layout_width="45dp" android:layout_height="45dp" android:background="@drawable/a"/> <TextView android:id="@+id/tv_xxa" android:layout_marginLeft="20dp" android:layout_width="wrap_content" android:layout_height="45dp" android:gravity="center_vertical" android:textColor="@color/black" android:textSize="20sp" android:text="1933"/> </LinearLayout> <LinearLayout android:id="@+id/ll_b" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="30dp"> <ImageView android:id="@+id/iv_b" android:layout_width="45dp" android:layout_height="45dp" android:background="@drawable/b"/> <TextView android:id="@+id/tv_xxb" android:layout_marginLeft="20dp" android:layout_width="wrap_content" android:layout_height="45dp" android:gravity="center_vertical" android:textColor="@color/black" android:textSize="20sp" android:text="1934"/> </LinearLayout> <LinearLayout android:id="@+id/ll_c" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="30dp"> <ImageView android:id="@+id/iv_c" android:layout_width="45dp" android:layout_height="45dp" android:background="@drawable/c"/> <TextView android:id="@+id/tv_xxc" android:layout_marginLeft="20dp" android:layout_width="wrap_content" android:layout_height="45dp" android:gravity="center_vertical" android:textColor="@color/black" android:textSize="20sp" android:text="1935"/> </LinearLayout> <LinearLayout android:id="@+id/ll_d" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="30dp"> <ImageView android:id="@+id/iv_d" android:layout_width="45dp" android:layout_height="45dp" android:background="@drawable/d"/> <TextView android:id="@+id/tv_xxd" android:layout_marginLeft="20dp" android:layout_width="wrap_content" android:layout_height="45dp" android:gravity="center_vertical" android:textColor="@color/black" android:textSize="20sp" android:text="1936"/> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="0dp" android:layout_weight="1.4" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_result" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textColor="#DC2A1D" android:textSize="20sp" android:layout_marginLeft="30dp"/> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_weight="3.5" android:layout_height="wrap_content" android:id="@+id/ll_jiexi"> <TextView android:layout_marginLeft="175dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="鏌ョ湅瑙f瀽" android:textColor="#F39203" android:textSize="20sp"/> <ImageView android:layout_width="27dp" android:layout_height="27dp" android:background="@drawable/question_down"/> </LinearLayout> </LinearLayout> <LinearLayout android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:visibility="gone" android:id="@+id/tv_jiexi" android:layout_margin="15dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="11"/> </LinearLayout> </LinearLayout>
新闻功能顺利实现,答题功能预计明天结束,之后开展功能整合,以及页面优化