content

android.content.res.Resources NotFoundException解决

↘锁芯ラ 提交于 2019-12-11 16:07:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在 android 开发中会用一些资源,这些资源以不同形式存在,比如说图片,xml等,android为这些不同类型的资源统一编号,生成资源类R 。如下: public final class R { public static final class anim { public static final int popup_enter=0x7f040000; public static final int popup_exit=0x7f040001; } public static final class drawable { public static final int gradient_bg=0x7f020000; public static final int icon=0x7f020001; } public static final class layout { public static final int city_item=0x7f030000; } } 在编译器编译程序时可以找到的资源,但在运行时却找不到,会出现如下异常: 3-14 01:40:58.452: WARN/AppWidgetHostView(627): android.content.res.Resources$

集成极光推送-链式调用

最后都变了- 提交于 2019-12-11 02:38:18
很多 app都要用到推送,当时每次封装成工具类的时候方法形参太多 可阅读性变得很差 也不方便扩展,所有下定决心改改屎山 首先我们来写一个配置吧 这里使用springboot的 @ConfigurationProperties(prefix = "push") 将获取到的信息 放在配置文件里即可 // key private String appKey; // secret private String masterSecret; // ios下是否是开发环境 private Integer product; 推送设备枚举 public enum PushDeviceEnum { /** * 全部设备 */ ALL(0, "ALL"), /*** * IOS */ IOS(4, "ios"), /** * android */ ANDROID(3, "android"); private Integer index; private String name; PushDeviceEnum(Integer index, String name) { this.index = index; this.name = name; } public Integer getIndex() { return this.index; } public static PushDeviceEnum

Spring高级话题-测试

时光毁灭记忆、已成空白 提交于 2019-12-10 16:44:38
一、关于Spring中的测试 在开发过程中开发人员会经常使用到两种测试方式,单元测试和集成测试 单元测试:只针对单一的类或方法,对运行环境没有依赖 集成测试:需要来自不同层的不同对象的交互,如数据库,网络连接,ioc容器等 Spring通过Spring TestContext Framework对集成测试提供了顶级的支持 补充: 基于Maven构建的项目结构默认有关于测试的目录: 测试代码:src/test/java 测试资源:src/text/resources 二、如何使用Spring提供的测试功能 使用@RunWith注解,让代码运行于Spring测试环境(@RunWith就是一个运行器,SpringJUnit4ClassRunner.class提供了Spring TestContext Framework的功能) 使用@ContextConfiguration注解来配置应用容器 使用@ActiveProfiles来确定profile 三、testDemo 实体类 package com . cactus . demo . test ; /** * Created by liruigao * Date: 2019-12-09 14:04 * Description: */ public class TestDemo { private String content ;

分享一个CSS3实现的动态内容标签页切换效果教程

依然范特西╮ 提交于 2019-12-10 16:25:35
日期:2012-4-14 来源: GBin1.com 在线演示 本地下载 在这篇教程中,我们将学习如何使用CSS3来实现一个动态的标签页切换效果。希望大家喜欢。 内容标签页在网站或者web开发中经常使用到,它对于帮助我们美化页面非常的实用。这个教程中我们将使用radio button和:checked伪类和sibling组合来实现一个CSS3内容标签页。 注意目前并不是所有的浏览器都支持CSS3。 HTML标签 这里我们使用input元素来生成内容切换操作元素,并且使用label元素来生成标签页内容: <section class="tabs"> <input id="tab-1" type="radio" name="radio-set" class="tab-selector-1" checked="checked" /> <label for="tab-1" class="tab-label-1">About us</label> <input id="tab-2" type="radio" name="radio-set" class="tab-selector-2" /> <label for="tab-2" class="tab-label-2">How we work</label> <input id="tab-3" type="radio" name="radio

css中双飞翼布局

半世苍凉 提交于 2019-12-10 14:55:05
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> <style type="text/css"> *{ margin: 0; padding: 0; } /*      <!-- 整体div,设置整个页面占屏幕的比例,并居中 --> */ .container{ width: 70%; margin: auto; } /*      <!-- 中间内容,这里设置隐藏是配合该div中的其它元素(div)根据某div高度增长而增长 --> */ .content{ overflow: hidden; } /*      <!-- 设置如同种左中右三个布局左浮动;最小高度;其它两个div根据某一个div的高度而变化,这样舍得本例内容左中右三个div等高,如本例中,左中右,左div被内容撑高,那么中右两个div都将与左div等高 --> */ .content .middle,.content .left,.content .right{ float: left; min-height: 200px; margin-bottom: -100000px; padding-bottom: 100000px; } /*      <!-- 设置内容中间部分的宽 --> */

python基础(10):文件操作

余生长醉 提交于 2019-12-10 12:11:45
1.初识文件操作 使⽤python来读写⽂件是非常简单的操作。我们使⽤open()函数来打开⼀个⽂件,获取到⽂ 件句柄,然后通过⽂件句柄就可以进⾏各种各样的操作了,根据打开⽅式的不同能够执⾏的操 作也会有相应的差异。 打开⽂件的⽅式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使⽤的是r(只读)模式 回到顶部(go to top) 2. 只读操作(r,rb) f = open("护⼠少妇嫩模.txt",mode="r", encoding="utf-8") content = f.read() print(content) f.close() 需要注意encoding表⽰编码集,根据⽂件的实际保存编码进⾏获取数据,对于我们⽽⾔,更 多的是utf-8. rb:读取出来的数据是bytes类型,在rb模式下,不能选择encoding字符集。 f = open("护⼠少妇嫩模.txt",mode="rb" ) content = f.read() print(content) f.close() 结果: b'\xe6\xaf\x85\xe5\x93\xa5, \xe5\xa4\xaa\xe7\x99\xbd, wuse\n\xe5\x91\xb5\xe5\x91\xb5\n\xe6\x97\xa5\xe5\xa4\xa9' rb的作⽤

基础总结篇之七:ContentProvider之读写短消息(二)

拟墨画扇 提交于 2019-12-10 11:36:43
发送和写入短信 在某些场合,我们需要发送短信,并将短信写入数据源中,这时我们就需要了解一下发送短信机制和写入短信机制。 我们将试图发送一条短信到指定的地址,同时将短信的内容写入到短信数据源中,待短信发送成功后,我们告知用户发送成功,待对方接收到短信后,我们告知用户对方接收成功。 要实现这些功能,我们需要了解以下几个重点内容: 1.使用android.telephony.SmsManager的API发送短信 2.使用ContentProvider机制对“content://sms/sent”这个URI进行写入操作 3.注册“SENT_SMS_ACTION”这个广播地址,待短信发送成功后接收到这条广播 4.注册“DELIVERED_SMS_ACTION”这个广播地址,待对方接收到短信后接收到这条广播 下面我们就用代码实现这些功能,创建一个名为SMSActivity的Activity,如下: package com.scott.provider; import java.util.List; import android.app.Activity; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.ContentValues; import

基础总结篇之六:ContentProvider之读写联系人

孤街醉人 提交于 2019-12-10 11:12:37
今天我们来讲解一下如何利用ContentProvider机制读写联系人信息。 在Android中,ContentProvider是一种数据包装器,适合在不同进程间实现信息的共享。例如,在Android中SQLite数据库是一个典型的数据源,我们可以把它封装到ContentProvider中,这样就可以很好的为其他应用提供信息共享服务。其他应用在访问ContentProvider时,可以使用一组类似REST的URI的方式进行数据操作,大大简化了读写信息的复杂度。例如,如果要从封装图书数据库的ContentProvider获取一组图书,需要使用类似以下形式的URI: content://com.scott.book.BookProvider/books 而要从图书数据库中获取指定图书(比如23号图书),需要使用类似以下形式的URI: content://com.scott.book.BookProvider/books/23 注:ContentProvider是一个抽象类,定义了一系列操作数据的方法模板,BookProvider需要实现这些方法,实现图书信息的各种操作。 那么,现在知道了具体的URI之后,我们又如何操作进而取得数据呢? 此时,我们就要了解ContentResolver这个类,它跟ContentProvider是对应的关系

ContentProvider

泄露秘密 提交于 2019-12-10 05:23:52
android使用一种称为contentprovider的概念来将数据抽象为服务。 这种内容提供给程序的理念看起来像是启用了REST的数据提供程序。REST(REpresentational State Transfer具象状态传输),它是一种设计风格,通常基于使用HTTP,URI和XML以及HTML这些现有的广泛流行的协议和标准。资源由URI指定,对资源的操作包括获取,创建,修改和删除资源;这些操作正好对应HTTP协议提供的GET,POST和DELETE方法。 要从ContentProvider 检索数据 或将数据 保存 到Contentprovider,需要使用一组类似REST的URI。 例如,如果要从封装 图书 数据库 的contentprovider获取 一组图书 ,需要使用类似以下形式的URI: content://com.android.book.BookProvider/books 要从 图书数据库 获得 指定图书 (如23号图书),需要使用类似以下形似的URI: content://com.android.book.BookProvider/books/23 设备上的任何应用程序都可以利用这些URI来访问或操作数据 。所以,在 应用程序之间 的 数据共享上 ,ContentProvider扮演着重要角色。 只有 在 希望 与外部 或在 应用程序之间 共享数据 时,

ES7方法提前简单介绍

萝らか妹 提交于 2019-12-10 05:20:52
ES7方法介绍 1.数组 2.求幂 3. 字符串 4. async await 让我们一起来看看ES7有什么新的东西吧。 1.数组 数组新增方法 includes 这个是检查数组内是否存在某个东西,返回布尔类型值。下边代码的返回值为false <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> </body> </html> <script> let a = [1, 2, 3, 4] let c = a.includes(88) alert(c) </script> 把includes中的88替换成1,返回的值就是true。 let c = a.includes(1) 另外,数组的 keys,values,entries 也是新增的方法 keys =======>拿出所有的key values========> 拿出所有的value entries =======> 所有的 key