context

Android之SharedPreferences数据存储

♀尐吖头ヾ 提交于 2020-02-02 18:34:19
一、SharedPreferences保存数据介绍   如果有想要保存的相对较小键值集合,应使用SharedPreferences API。SharedPreferences对象指向包含键值对的文件并提供读写这些文件的简单方法。每个SharedPreferences文件由框架进行管理并且可以专用或共享。   SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstancesState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存。   处理方式:SharedPreferences类似过去的Windows系统上的ini配置文件,但它分为多种权限,可以全局共享访问 ,Android提示最终是以xml方式来保存,整体效率来看不是特别高,对于常规的轻量级而言要比SQLite要好不少如果真的存储量不大可以考虑自己定义文件格式。Xml处理时Dalvik会通过自带底层的本地XML Parser解析,比如XML pull方式,这样对于内存资源占用比较好。它的本质是基于xml文件存储key-value键值对数据,通过用来存储一些简单的配置信息。其存储位置在/data/data/<包名>

【Flutter】入门09-Grid网格布局

人走茶凉 提交于 2020-02-02 05:54:35
使用GridView.count创建(按照数量限制交叉轴显示个数) import 'package:flutter/material.dart'; import 'dart:math'; void main() { runApp(App()); } class App extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData(primaryColor: Colors.redAccent), home: Home(), ); } } class Home extends StatelessWidget { //创建网格子元素 List<Widget> _buildGridItem(int count) { List<Widget> results = []; for (var i = 0; i < count; i++) { results.add(MyContainer(getRandomColor(), i.toString())); } return results; } //创建随机颜色 Color getRandomColor() { return Color.fromARGB(255, Random.secure

部分键盘删除键无法响应onkeyListener事件,包括google原生键盘

白昼怎懂夜的黑 提交于 2020-02-02 05:01:43
部分键盘del键无法响应onkeyListener事件,包括google原生键盘 之前我们想要在EditText中监听软件盘都会使用以下方法 editText.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DEL && event.getAction() == KeyEvent.ACTION_DOWN) { //点击了删除键 } return false } }); 但是在实际使用中会发现部分键盘是不相应这个事件的,比如华为和vivo键盘 自定义EditText重写InputConnectionWrapper public class CodeInputEditText extends EditText { private OnDelKeyEventListener delKeyEventListener; public CodeInputEditText(Context context) { super(context); } public CodeInputEditText(Context context, AttributeSet attrs)

Spring5

我是研究僧i 提交于 2020-02-02 01:41:57
Spring 1、Spring 1.1、简介 Spring:给软件行业带来了春天! 2002年,首次推出了spring框架的雏形:interface21框架 Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。 作者:Rod Johnson 音乐学的博士 Spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架。 官网:https://spring.io/projects/spring-framework#learn 官方下载地址:https://docs.spring.io/spring/docs/4.3.9.RELEASE/spring-framework-reference/ GitHub:https://github.com/spring-projects/spring-framework 导包: <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-webmvc </ artifactId > <

运用样式与颜色 --Canvas的基本操作

强颜欢笑 提交于 2020-02-02 00:32:52
1.fillStyle 和 strokeStyle属性 如果想要给图形上色,有两个重要的属性可以做到: fillStyle 和 strokeStyle 。这两个属性的定义方法如下所示。 fillStyle = color strokeStyle = color strokeStyle 是用于设置图形轮廓的颜色,而 fillStyle 用于设置填充颜色。 color 可以是表示 CSS 颜色值的字符串、渐变对象或者图案对象。默认情况下,线条和填充颜色都是黑色(CSS 颜色值 #000000)。这里需要注意的是如果自定义颜色则应该保证输入符合 CSS颜色值标准的有效字符串。下面的代码都是符合标准的颜色表示方式,都表示同一种颜色(橙色)。 context.fillStyle = "orange"; context.fillStyle = "#FFA500"; context.fillStyle = "rgb(255,165,0)"; context.fillStyle = "rgba(255,165,0,1)"; 2.透明度 globalAlpha 通过设置 globalAlpha属性或者使用一个半透明颜色作为轮廓或填充的样式来绘制透明或半透明的图形。globalAlpha属性定义代码如下所示: globalAlpha = transparency value 这个属性影响到

Flink之ProcessFunction API(底层API)

浪尽此生 提交于 2020-02-02 00:30:44
一、产生背景 转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。 基于此,DataStream API提供了一系列的Low-Level转换算子。可以访问时间戳、watermark以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。Process Function用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的window函数和转换算子无法实现)。例如,Flink SQL就是使用Process Function实现的。 Flink提供了8个Process Function: ProcessFunction dataStream KeyedProcessFunction 用于KeyedStream,keyBy之后的流处理 CoProcessFunction 用于connect连接的流 ProcessJoinFunction 用于join流操作 BroadcastProcessFunction 用于广播 KeyedBroadcastProcessFunction keyBy之后的广播 ProcessWindowFunction 窗口增量聚合 ProcessAllWindowFunction 全窗口聚合 二、KeyedProcessFunction 2.1

Android LayoutInflater&LayoutInflaterCompat源码解析

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-02 00:12:02
本文分析版本: Android API 23,v4基于 23.2.1 1 简介 实例化布局的XML文件成相应的View对象。它不能被直接使用,应该使用 getLayoutInflater() 或 getSystemService(Class) 来获取已关联了当前 Context 并为你正在运行的设备正确配置的标准LayoutInflater实例对象。 例如: LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 为了创建一个对于你自己的View来说,附加了 LayoutInflater.Factory 的 LayoutInflater ,你需要使用 cloneInContext(Context) 来克隆一个已经存在 LayoutInflater ,然后调用 setFactory(LayoutInflater.Factory) 来替换成你自己的Factory。 由于性能原因,View的实例化很大程度上依赖对于xml文件在编译时候的预处理。因此,目前使用 LayoutInflater 不能使用直接通过原始xml文件获取的 XmlPullParser ,只能使用一个已编译的xml资源返回的 XmlPullParser ((R

SpringMVC基础知识整理

£可爱£侵袭症+ 提交于 2020-02-01 15:58:32
目录 三层架构 MVC模型 SpringMVC概述 springmvc是什么 springmvc和structs2比较 springmvc 环境搭建 spring的配置文件头部 入门程序编写 springmvc工作流程(原理) 解决post请求中文乱码问题(使用过滤器filter) 请求参数绑定 自定义类型转换器 获取原生servlet的API 常见注解 @RequestMapping @RequestParam @RequestBody @PathVariable @RequestHeader(用的较少) @CookieValue @ModelAttribute @SessionAttributes restful编程风格 响应请求的四种方式 响应之后返回值是string类型 响应之后返回值是void类型 响应之后返回值是ModelAndVies类型 使用forward和redirect关键字进行页面跳转 发送ajax请求并响应(数据传输以json格式进行传输) 文件上传 传统方式 springmvc文件上传 跨服务器实现文件上传 springmvc的异常处理 异常处理思路 springmvc异常处理示例小代码 springmvc拦截器 springmvc拦截器入门小程序 三层架构 我们的开发一般有两种形式:C/S架构,B/S架构,在JavaEE开发中,几乎都是基于B

Spring框架---概述(2)

早过忘川 提交于 2020-02-01 15:25:25
Spring 第二天笔记 1. 使用注解配置 Spring 入门 1.1. 说在前面 学习基于注解的 IoC 配置,大家脑海里首先得有一个认知,即注解配置和 xml 配置要实现的 功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。 关于实际的开发中到底使用 xml 还是注解,每家公司有着不同的使用习惯。所以这两种配置方式我们都需要掌握。 基于注解配置的方式也已经逐渐代替 xml 。所以我们必须要掌握使用注解的方式配置 Spring 。 1.2. 配置步骤 注意: Eclipse 需要先安装了 STS 插件,或者使用 STS 开发工具创建项目。 1.2.1. 第一步:拷贝必备 jar 包到工程的 lib 目录。 注意:在基于注解的配置中,我们还要多拷贝一个 aop 的 jar 包。如下图: 1.2.2. 第二步:在类的根路径下创建一个任意名称的 xml 文件(不能是中文) 注意:基于注解整合时,Spring 配置文件 导入约束时需要多导入一个 context 名称空间下的约束 <?xml version= "1.0" encoding= "UTF-8" ?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:p= "http://www.springframework.org/schema

andorid设置音量

∥☆過路亽.° 提交于 2020-02-01 03:33:25
public class AudioUtil { private AudioManager mAudioManager; private static AudioUtil mInstance; private AudioUtil(Context context){ mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); } public synchronized static AudioUtil getInstance(Context context){ if(mInstance == null){ mInstance = new AudioUtil(context); } return mInstance; } //获取多媒体最大音量 public int getMediaMaxVolume(){ return mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC ); } //获取多媒体音量 public int getMediaVolume(){ return mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC ); } //获取通话最大音量