2020-04-02-星期四【源码可私聊我,QQ:386335886】

写篇文章不容易,点个赞再走吧,求求了~ 

目   录

网络访问-思维导图

玩Android网站---查看登录Cookie

适配器相关设置

点击文章列表-进行页面跳转

WebView布局控件

给ListView添加点击事件处理---传递页面链接

在ReadActivity中接收参数

在WebView中打开链接

WebView无法加载---更换镜像

隐藏标题栏

效果展示

登录成功---保存用户名、密码【可能要考】

自动登录

强制登录

不登录,不许使用App

添加菜单

新建菜单文件夹

添加 菜单资源

设置菜单样式

设置菜单图标

收藏文章列表

服务器端收藏文章


网络访问-思维导图

https://share.weiyun.com/1vVLYnlb

玩Android网站---查看登录Cookie

网 址 :https://wanandroid.com

postman 接口、测试、工具

适配器相关设置

点击文章列表-进行页面跳转

WebView布局控件

给ListView添加点击事件处理---传递页面链接

private void initView() {//handler = new MyHandler(this);listArticle = findViewById(R.id.listArticle);adapter = new CommonAdapter<Article>(this, null, R.layout.item_article) {@Overridepublic void convert(ViewHolder helper, Article item) {helper.setText(R.id.textView, item.getTitle());helper.setText(R.id.textView3, item.getShareUser());helper.setText(R.id.textView5, item.getSuperChapterName() + "/" + item.getChapterName());}};listArticle.setAdapter(adapter); // 设置适配器
}

在ReadActivity中接收参数

strUrl = getIntent().getStringExtra("link");

在WebView中打开链接

package cn.wangzg.course0602;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.view.Window;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;public class ReadActivity extends AppCompatActivity {private WebView wvRead;private String strUrl;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_read);strUrl = getIntent().getStringExtra("link");initView();}@SuppressLint("SetJavaScriptEnabled")private void initView() {wvRead = findViewById(R.id.wvRead);//加载一个网页//        //声明WebSettings子类
//
//        WebSettings webSettings = wvRead.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");//设置编码格式//        // android 5.0以上默认不支持Mixed Content
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//            wvRead.getSettings().setMixedContentMode(
//                    WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
//        }//重写shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示wvRead.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});wvRead.getSettings().setJavaScriptEnabled(true);  //设置WebView属性,运行执行js脚本wvRead.loadUrl(strUrl);}
}

WebView无法加载---更换镜像

隐藏标题栏

菜鸟教程 :https://www.runoob.com/w3cnote/android-tutorial-activity-start.html 【貌似没有!】

<activity android:name=".ReadActivity"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"></activity>

效果展示

登录成功---保存用户名、密码【可能要考】

  1. 判断是否保存 ---> 需要保存
  2. 打开登录窗口时,获取保存的值(如果值存在!)

//登录成功,是否保存用户名和密码
if (cbRem.isChecked()) {SharedPreferences sp = getSharedPreferences("wan", MODE_PRIVATE);SharedPreferences.Editor edit = sp.edit();edit.putString("name", name);edit.putString("pwd", pwd);edit.putBoolean("isRem", true); // 是否记住密码edit.commit();
}

SharedPreferences sp = getSharedPreferences("wan", MODE_PRIVATE);
String name = sp.getString("name", "");
String pwd = sp.getString("pwd", "");
boolean isRem = sp.getBoolean("isRem", false);
etName.setText(name);
etPwd.setText(pwd);
cbRem.setChecked(isRem);

自动登录

  1. 登录窗口 不作为 启动窗口;
  2. WanListActivity作为启动Activity,启动时获取用户名与密码,然后登录;
  3. 登录成功,重新获取资源【 getData() 】。

强制登录

不登录,不许使用App

添加菜单

菜鸟教程---菜单

https://www.runoob.com/w3cnote/android-tutorial-menu.html

新建菜单文件夹

添加 菜单资源

设置菜单样式

设置菜单图标

收藏文章列表

服务器端收藏文章

https://wanandroid.com/blog/show/2 

最好封装成方法【传递Id参数】 

写篇文章不容易,点个赞再走吧,求求了~ 

Android复习05【网络编程---WebView获取文章信息、保存用户名与密码、设置菜单样式、收藏文章列表】相关推荐

  1. android 保存 用户名和密码 设置等应用信息优化

    1.传统的保存用户名,密码方式 SharedPreferences Editor editor = shareReference.edit(); editor.putString(KEY_NAME,& ...

  2. C# 通过豆瓣网络编程API获取图书信息

    这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...

  3. Spring Security——认证失败时获取认证信息(用户名、密码、IP、SESSIONID)

    源代码 package cn.edu.zstu.shihua.xihu.listener;import cn.edu.zstu.shihua.xihu.model.Log; import cn.edu ...

  4. php获得注册信息,PHP网络编程:获取用户的注册信息[2]

    PHP网络编程:获取用户的注册信息[2]以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!     --此文章摘自<P ...

  5. java获取主机信息大全,网络编程:Java获取网络主机信息

    java.net.InetAddress类表示互联网协议 (IP) 地址. 有两个子类:Inet4Address, Inet6Address 通过 InetAddress可以方便获取一个域名下的IP, ...

  6. Android中的网络编程-黄俊东-专题视频课程

    Android中的网络编程-1902人已学习 课程介绍         剔除繁杂的理论,注重实践,深入浅出讲解Android中的网络编程 课程收益     每一个学员都能系统地掌握Android中的网 ...

  7. android flv 编码器,Android 音视频深入 十七 FFmpeg 获取 RTMP 流保存为 flv (附源码下载)...

    Android 音视频深入 十七 FFmpeg 获取 RTMP 流保存为 flv (附源码下载) 项目地址 https://github.com/979451341/RtmpSave 这个项目主要代码 ...

  8. 网络文件夹目前是以其他用户名和密码进行映射的 解决方案

    当映射网络驱动器到文件服务器时,发现有些文件夹可以被映射,有些文件夹却不能被映射. 在输入了用户名和密码后弹出以下错误信息:"指定的网络文件夹目前是以其他用户名和密码进行映射的.要用其他用户 ...

  9. Android保存用户名和密码

    我们不管在开发一个项目或者使用别人的项目,都有用户登录功能,为了让用户的体验效果更好,我们通常会做一个功能,叫做保存用户,这样做的目地就是为了让用户下一次再使用该程序不会重新输入用户名和密码,这里我使 ...

最新文章

  1. 新手UI设计师需要掌握的知识和技能
  2. 爬虫之requests模块在headers参数中携带cookie发送请求
  3. python获取指定端口流量_利用python获取nginx服务的ip以及流量统计信息
  4. 条码生成代码(Code39码)
  5. C++ 学习之旅(4)——调试Debug
  6. Spring5 jar包下载
  7. [转]Angular2 Material2 封装组件 —— confirmDialog确定框
  8. qt 串口发送char 数组乱码_串口的波特相差多大会误码
  9. java List和数组转换
  10. mysql5.5 免编译安装及脚本启动报错深入
  11. 【NOIP2013提高组T3】加分二叉树
  12. 成功把泰山Office编译为wasm
  13. 光储直流微电网simulink仿真模型 双向变换器 ,独立光伏系统能量管理,最大功率点跟踪mppt
  14. 《动手学深度学习》入门环境安装
  15. 线性系统理论2 系统状态和状态空间
  16. 封装方法-数字转大写(一)——将数字金额转换为大写金额
  17. 提取、修改、重建deb包
  18. php 调取百度天气api
  19. JAVA毕业设计Web端校园报修系统计算机源码+lw文档+系统+调试部署+数据库
  20. python所用到的英语单词_用Python自制考研英语单词手册

热门文章

  1. php编译优化,浅析使用Turck-mmcache编译来加速、优化PHP代码
  2. 随机手机号码_骗妹子手机号码,还记得iPhone自带计算器的小魔术吗?,看教程...
  3. 压力测试网站_一行命令就能网站压力测试和网站故障排除
  4. 六十五、下一个更大的数系列,单调栈解决方法
  5. 四十四、深入Java 的序列化和反序列化
  6. 北京内推 | 联想研究院机器学习团队招聘因果推理算法研究实习生
  7. 关于NLP相关技术全部在这里:预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、语法分析、文本处理...
  8. 如何应对Seq2Seq中的“根本停不下来”问题?
  9. Github大热论文 | U-GAT-IT:基于GAN的新型无监督图像转换
  10. HDU 1243 最长公共子序列 动态规划