1发包的流程
Build->Generate Signed APK->选择Build Type(release/debug)->finished,打包完之后,生成的apk会在app目录下。
2ButterKnife的使用:
(1) 首先在gradle中引用compile 'com.jakewharton:butterknife:7.0.1'
(2) @Bind(R.id.xx)TextView/ImageView等等view、@OnClick(R,id.xx)void method();
(3) ViewHolder(View view) { ButterKnife.bind(this,view);}//需要绑定view
3Activity的生命周期
(1)
4ActivityforResult
(1) startActivityforResult:需要reqCode
(2) onActivityResult::onActivityResult(int requestCode, int resultCode, Intent data),需要继承父类的onActivityResult,可以获取下一级中需要的data。
5Listview的divider是针对于非首项,两者之间的。Draglistview是可拉去的列表,在scrollview中嵌套Listview的时候,会出现默认只显示一行的问题。解决方法就是动态计算listview的高度。
6对String资源的进一步使用:
(1) 利用%1%s、%1$d,动态插入文字
(2) <Data><![CDATA[%1$s<br/><br/><fontcolor="#8A8A8A">请您上传</font><fontcolor="#FF3434">法人授权委托书或其他文件</font>]]></Data>利用html格式来对文字进行设置。
7databinding的使用:
(1) 在gradle中引入
dataBinding {
enabled = true
}
(2) 在xml布局中,根节点为layout、variable是对即将绑定的对象、@{对象.属性}、@{对象.方法}
(3) XXListviewBinding即可直接引用绑定的布局文件,文件名+Binding即可引用,其中文件名是下划线去掉,采用驼峰命名法。首字母也是大写的。
8序列化
(1) Pojo类implementsParcelable
(2) 继承writeToParcel方法、Object(Parcel in)、describeContents、CREATOR、实现无参构造器
9Json、Gson格式数据的使用。
(1) Json解析对象数组:List<Object> objects = JSON.parseArray(result.data, Object.class)
(2) Json解析对象:Object object= JSON.parseObject(result.data, Object.class); Object object= new Gson().fromJson(result.data, Object.class);
(3) Json解析字符串: String str= result.data;
(4) 赋值
JSONObject args = new JSONObject();
int uid = PreferenceUtil.getInt("UID", 0);
args.put("uid", uid);
// 请求参数
HashMap<String, String> params = new HashMap<>();
params.put(METHOD, "members.info.get");
params.put(FORMAT, "json");
params.put(ARGS, args.toJSONString());
params.put(TOKEN, "");
10泛型
(1)List<?extends Parcelable> datas
11instanceof的使用
if (result instanceof EDataResult) {
EDataResult dataResult =(EDataResult) result;
}
12裁剪图片
13context的区别
(1) Application的context,可用于toast显示等等公共服务。
(2) Activity的context,专用于该activity的上下文。
14范例工具类(点击文字的时候,弹出范例图片)
(1) 在抽象的时候,根据业务场景分成了三个方法。
实例化该对象并初始化动画、显示图片、隐藏图片