202009-24 解决android viewmodel 数据刷新异常的问题 3年的wpf开发经验,自认为对数据驱动UI开发模式的使用不是问题,但当开始研究android的mvvm模式开发时,发现两年多的android开发经验已经将之前的wpf开发忘得7788了。感慨一下:人老了,记忆力就这么脆弱。谈正题:adroidmvvm开发模式之viewmodel使用小麻烦。viewmodelpublicclassMyViewModelextendsViewModel{privateMutableLiveData<List<User>>mUserList;publicMutableLiveData<List<User>>getUserList(){i... 继续阅读 >
202009-24 Android-ViewModel和LiveData使用详解 ViewModel类的设计目的是以一种关注生命周期的方式存储和管理与UI相关的数据。例如:Activity在配置发生改变时(屏幕旋转),Activity就会重新创建,onCreate()方法也会重新调用。我们可以在onSaveInstanceState()方法中保存数据,并从onCreate()方法中通过Bundle恢复数据,但这种方法只适用于可以对其进行序列化的少量数据,而不适用于潜在的大量数据。使用ViewModel的话ViewModel会自动保留之前的数据并给新的Activity或Fragment使... 继续阅读 >
202009-24 Android在自定义类中实现自定义监听器方式 监听器可以说是Android开发中最常用的东西之一。我们通过监听器可以监听对象的各种变化事件,并进行一些需要的处理,相当有用,而且使用起来也很简单。其实,监听器就相当于C++中的回调函数,达到条件就回调执行。很多时候,我们在自定义控件类中也需要实现一些属性变化的监听器,实现跟原生控件监听器一样的功能。以下分几个步骤说明自定义监听器实现和使用(以自定义类MyClass加载完成监听器为例):一、自定义监听器的实现:1、... 继续阅读 >
202009-24 Android使用Kotlin实现多节点进度条 时间轴主要使用Recyclerview来实现。开发语言使用Kotlin,代码相对java少了许多也简洁许多源代码下载地址效果图:MainActivity.ktpackagecom.example.lee.linenodeimportandroid.annotation.SuppressLintimportandroid.os.Buildimportandroid.support.v7.app.AppCompatActivityimportandroid.os.Bundleimportandroid.support.v7.widget.LinearLayoutManagerimportkotlinx.android.synthetic.main.activity_main.*importkot... 继续阅读 >
202009-24 Android实现带节点的进度条 日常的开发中经常会需要用到自定义View,这次刚好有个需求,需要用到带有节点的进度条。东西很简单直接继承View就行了。首先定义一些需要的属性/***背景画笔*/privatePaintbgPaint;/***前景画笔*/privatePaintforePaint;/***选中画笔*/privatePaintselectPaint;/***未选中画笔*/privatePaintunselectPaint;/***背景颜色*/privateintbgColor=Color.parseColor("#9C9C9C");/***前景颜色*/p... 继续阅读 >
202009-24 Android实现清除单个域名的cookie 今天PM提了个需求:用户退出当前网页时,只清除该网页访问的域名相关的cookie,保留其他域名的cookie。查了一下CookieManager的API,发现只有removeAllCookie(),没有清除单独域名cookie的API。。。想想也是,用了这么多年的浏览器,啥时候见过这功能?既然系统没有提供接口,那就是只能自己想办法去清了。首先要搞清楚Cookie存在哪里吧?在/data/data/<package>/app_webview目录下,找到一个Cookies文件,虽然它没有.db扩展名,但... 继续阅读 >
202009-24 解决Android webview设置cookie和cookie丢失的问题 Android页面嵌套了一个h5,H5页面内部有用户登陆页面,发现h5页面的登陆功能无法使用,一直登陆失败。和web那边商量一会,发现js写入的cookie丢失了。所有需要Android这边在重写写入一次。mWebView=view.findViewById(R.id.mall_view);settings=mWebView.getSettings();settings.setJavaScriptEnabled(true);settings.setLoadsImagesAutomatically(true);settings.setDomStorageEnabled(true);//不缓... 继续阅读 >
202009-24 Android中webView加载H5绑定cookie实例 简介:我最近在做项目的时候遇到了这种情况:1.需要用WebView实现一个H5的登陆注册。2.大赛报名,用H5实现。这些情况下,我需要把cookie传给服务器,让其判断当前账户是否登陆成功。查阅了一些资料后,终于搞定了。1.给一个加载的链接设置cookieprivatevoidsyncCookie(Stringurl){try{CookieSyncManager.createInstance(mWvSignUp.getContext());//创建一个cookie管理器CookieManagercookieManager=CookieManager.... 继续阅读 >
202009-24 Android WebView通过动态的修改js去拦截post请求参数实例 需求背景:需要在用户点击提交按钮的时候拦截用户提交的数据。遇到的问题:1.页面不是自家前端做的,不能修改网页中的代码2.要拦截的请求不是get请求,而是一个post请求(难点在于:如果拦截的请求是get请求的话,我只需要拿到url,将后面拼接的参数键值对取出来就好了,但是post请求的参数键值对我们是看不到的。。。)解决重点:重写webViewClient的shouldInterceptRequest这个方法1.这个方法是API21以后才出现的,还有一个过时的方法也要重... 继续阅读 >
202009-24 Android webview注入JS代码 修改网页内容操作 今天开发的时候遇到一个需求,就是需要隐藏webview的元素,鼓捣了半天在stackoverFlow找到了解决办法在此记录一下finalWebViewwebview=(WebView)findViewById(R.id.browser);webview.getSettings().setJavaScriptEnabled(true);webview.setWebViewClient(newWebViewClient(){@OverridepublicvoidonPageFinished(WebViewview,Stringurl){//hideelementbyclassnamewebview.loadUrl("javascript:(func... 继续阅读 >
202009-24 Android WebView 内处理302重定向不跳转的解决 最近项目中Webview加载第三方的具有302的重定向,但是却发现却没有重新跳转。最后发现问题如下:publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){super.shouldOverrideUrlLoading(view,url);.................returntrue;}发现最后返回的true,所以导致不会重定向跳转,只要返回fasle就可以重定向跳转了,如果你某些情况下需要,返回true自己处理一些url那你完全可以自己做判断。那么retur... 继续阅读 >
202009-24 Android实现WebView点击拦截跳转原生 1.首先设置Web视图webview.setWebViewClient(newMyWebViewClient());webview1.setWebViewClient(newMyWebViewClient());2.拦截点击的链接,跳转到对应的页面//监听所有点击的链接,如果拦截到我们需要的,就跳转到相对应的页面。privateclassMyWebViewClientextendsWebViewClient{@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){Log.e("tsg","url==="+url);//这里进行url拦截... 继续阅读 >
202009-24 Android Studio安装配置、环境搭建详细步骤及基本使用的详细教程 前言AndroidStudio的安装配置及使用篇终于来啦~废话不多说,以下针对JDK正确安装(及其环境变量配置完毕,即Java开发环境下)、AndroidStudio的安装,配置,以及创建工程、主题字体更换、窗口工具、布局、快捷方式等的基本使用逐一说明。安装java下载Java安装包(jdk,网上有很多下载地址,最好去官网下:https://www.java.com/zh_CN/),安装完后记得配置环境变量;在“系统变量”新建一个变量名为JAVA_HOME的变... 继续阅读 >
202009-24 Android Studio 安装配置方法完整教程【小白秒懂】 1.安装包下载安装包我们可以在官网下载,但为了让大家更方便,点击链接直接保存就好啦!!AndroidStudio安装包:链接:https://pan.baidu.com/s/1Xj4lACpLUgxMukvW981XUA提取码:r7iu2.AndroidStudio安装-打开安装包,点next-点next-这步要注意了,这里填安装的路径注:硬盘最好满足大于60G,最好是固态硬盘-直接安装-这里选择第二个-这里选择don'tsend不需要发送-这里会有一个提示直接点取消不用管-这里可以选择... 继续阅读 >
202009-24 Android WebView userAgent 设置为桌面UA实例 最近一个大屏项目中使用到支付宝扫码支付,但是webview加载扫码支付链接时会自动跳转到移动版页面,网上查找怎么设置,没找到解决方案。于是自己随便试了下webview.getSettings().setUserAgentString("PC");或webview.getSettings().setUserAgentString("电脑");竟然真的可以。userAgent可以设置浏览器标识,Android/iphone/ipod/ipad/PC等,这个应该有做类似模糊搜索一样,传相近的值就可以;它就会自动加载桌面版页面或移动版... 继续阅读 >
202009-24 Android WebView拦截iframe标签内部跳转教程 最近项目里有个广告位需要动态配置,后台给了一段html嵌套iframe标签的代码,需要Android拦截iframe内部的跳转,自己做处理。比如,下面是一段html代码,嵌套这iframe标签,src就是跳转地址,我现在就要当你点击该网址的时候做拦截,自己做处理而不是跳转。<html><iframesrc="https://www.jb51.net/"frameborder='0'scrolling='no'width='100%'height='300'></iframe></html>oh,我还是第一次知道iframe标签,不过想着应该... 继续阅读 >