常用的一些git的项目
- xutils
- pulltorefresh
- NiftyDialogEffects
- Gson
目录
xutils
这里是git的链接地址 https://github.com/wyouflf/xUtils
请务必记住要在setContentView(R.layout.main)的下一行写上ViewUtils.inject(this);
依赖注入组件
代码块语法遵循标准markdown代码,例如:
@ViewInject(R.id.textview)
TextView textView
依赖注入响应事件
@OnClick(R.id.button)
public void onClick(View view){
/** 响应事件 **/
}
@OnLongClick(R.id.button)
public boolean onLongClick(View view){
/** 响应事件 **/
return false;
}
@OnItemClick(R.id.listView)
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l){
/** 响应事件 **/
}
@OnItemLongClick(R.id.listView)
public void onItemLongClick(AdapterView<?> adapterView, View view, int i, long l){
/** 响应事件 **/
}
需要注意到的是,当我个人在使用pulltorefresh的控件中,发现pulltorefreshlistview并不通过viewutils来进行依赖注入,只能通过pulltorefreshlistview.getRefreshableView.setOnItemListener();
httputils
这个作为LZ常用的网络通信工具,也是一直被用到今天。
在使用httputils.send之前,有两个东西我们需要知道和熟悉。
1,用于封装入参的RequestParams;
2,处理返回服务器结果RequestCallBack< Object >;
RequestParams
首先是构造方法和规定编码
RequestParams requestParams = new RequestParams();
RequestParams requestParams = new RequestParams("UTF-8");
requsetParams.setContentType("UTF-8");
(在此处要声明一下,LZ所在的公司的服务端是用webservice的框架,所以LZ在这里提到是常用,是默认服务端为webservice,若无法通过LZ的方法进行网络通信,请私信LZ)
接下来就是对参数的封装:
<!-- values的类型必须为String -->
requestParams.addBodyParameter("Parameters", values);
。。。是的,就是上面那样子就可以封装了。。。
RequestCallBack< Object >
首先LZ要说一个毕竟坑的地方,就是在requestCallBack中(假设success)有一个 public void onSuccess(ResponseInfo< String > objectResponseInfo)的方法,但我们必须在这个方法中获得的返回值objectResponseInfo不能持久化,简单点说,就是我们对返回值做出的一系列解析/绑定都必须在onSuccess的方法中实现,这样代码看上去就显得有点臃肿(至今LZ并没有想到什么好方法可以解决,私信求教)
@Override
public void onCancelled() {}
@Override
public void onLoading(long total, long current, boolean isUploading) {
/** 设置进度条 **/
}
@Override
public void onSuccess(ResponseInfo<String> objectResponseInfo) {
/** 对返回值objectResponseInfo进行数据操作 **/
}
@Override
public void onFailure(HttpException e, String s) {}
说完了参数封装和返回值的获取,是时候说说httputils的send了
国际惯例,先是构造函数
/* 默认的DEFAULT_CONN_TIMEOUT 为 15000 */
/* HttpUtils自带有gzip */
HttpUtils httpUtils = new HttpUtils();
HttpUtils httpUtils = new HttpUtils(15000);
/* HttpUtils中的send方法 */
public <T> HttpHandler<T> send(HttpMethod method, String url, RequestParams params, RequestCallBack<T> callBack) {}
BitmapUtils
顾名思义,就是用于加载网络图片并显示在imageView的工具类。
注意,这里特指ImageView。(LZ曾经试过使用RoundImageView+BitmapUtils,但并没有成功)
构造函数:
BitmapUtils bitmapUtils = new BitmapUtils(context);
/* CachePath为缓存地址,String型 */
BitmapUtils bitmapUtils = new BitmapUtils(context,CachePath);
/* memoryCacheSize为内存缓存容量,int型,单位为B */
BitmapUtils bitmapUtils = new BitmapUtils(context,CachePath,memoryCacheSize);
/* 这里的ImageView为ImageView的对象 , Url为图片的链接地址,String型 */
bitmapUtils.display(ImageView,Url);
bitmapUtils.display(ImageView,Url,BitmapDisplayConfig);
... /* LZ常用这两种,但还有其他的一些方法,LZ没试过也就没列举出来 */