标签:
pulltorefresh
支持listview,webview,gridview,expandableListview众多控件
1,lv_list = refreshListView.getRefreshableView();//需要拿到refreshListView这个组合控件里面的具体的listview,才可以设置adapter
2.refreshListView.setRefreshing();//开始加载数据的时候.应该显示.正在刷新
3.refreshListView.onRefreshComplete();//结束刷新状态
4. refreshListView.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
//下拉刷新中.我们应该去重写请求数据
initData();
System.out.println("===setOnRefreshListener====");
}
});
xlistview:修改布局方便
关键方法
xlv.setPullLoadEnable(true);//开启上拉加载更多
xlv.setPullRefreshEnable(true);//开启下拉刷新
xlv.stopRefresh();//停止刷新
xlv.stopLoadMore();//停止加载更多
xlv.setXListViewListener(new IXListViewListener() {//设置监听
@Override
public void onRefresh() {
handler.sendMessageDelayed(new Message(), 2000);
}
@Override
public void onLoadMore() {
for (int i = 0; i < 100; i++) {
String str = "这个是一个item条目 " + i;
dataSource.add(str);
}
handler.sendMessageDelayed(new Message(), 2000);
}
});
xlv.setRefreshTime(preUpdateTime2);//设置上次更新时间
onPre
doInbackGroup
onpost
private static final int CORE_POOL_SIZE = 5; //核心线程数
private static final int MAXIMUM_POOL_SIZE = 128; //最大线程数
private static final int KEEP_ALIVE = 1; //超时时间,当线程数超过核心线程数时,超过这个时间的空线程就会被销毁,直到线程数等于核心线程
3.0后提供串行和并行,默认情况是串行
executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, null);//串行
executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, null);//并行
实际开发我们会去继承Asynctask
//1.
public static interface OnCheckedChangeListener {
void onCheckedChanged(CompoundButton buttonView, boolean isChecked);
}
//2.
private OnCheckedChangeListener mOnCheckedChangeListener;
//3.
mOnCheckedChangeListener.onCheckedChanged(this, mChecked);
//4.
public void setOnCheckedChangeListener(OnCheckedChangeListener listener) {
mOnCheckedChangeListener = listener;
}
方法定义的地方.统一抛出基类
/**
* 这个是一个会抛出异常b的方法
* @throws HMException
* @throws HMException
*/
public static void methodB() throws HMException {
//如果在某一个时刻.出现了异常啊.
//出现状态的是子类.抛出的是父类.
throw new HMBException();//主动抛异常
}
方法使用的地方,try catch基类
try {
Api.methodB();
} catch (HMException e) {
handleException(e);
}
提示信息具体化
/**
* 不同异常子类用不同的code表示
* @param e
* @return
*/
public static int exception2code(HMException e) {
int errCode = 0;
if (e instanceof HMAException) {
errCode = 1;
} else if (e instanceof HMBException) {
errCode = 2;
} else if (e instanceof HMCException) {
errCode = 3;
} else if (e instanceof HMDException) {
errCode = 4;
}
return errCode;
}
/**
* 根据不同的异常信息.显示不同的效果
* @param e
*/
public void handleException(HMException e) {
int exception2code = ExceptionHandler.exception2code(e);
String code2String = ExceptionHandler.code2String(exception2code);
Toast.makeText(getApplicationContext(), code2String, 0).show();
}
actionBar版本兼容库.我们可以在2.1以下也是用actionbar
actionBar = getSupportActionBar();//得到actionbar,
actionBar.setDisplayHomeAsUpEnabled(true);//是否显示返回箭头,默认情况是false,
//如果setDisplayShowHomeEnabled setDisplayShowTitleEnabled 都是false,那么退回图标设置为true/false都不见
actionBar.setDisplayShowHomeEnabled(false);//是否显示logo,默认是true
actionBar.setDisplayShowTitleEnabled(true);//是否显示title,默认是true
// actionBar.setTitle("56期");//修改title
// actionBar.setIcon(R.drawable.icon_download);//修改logo
使用zxing包,qrcode
以前很长一段时间.关于zxing包的精简是比较火.
图片横着切
仿微信扫描效果
//1.启动扫描界面
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, SCANNIN_GREQUEST_CODE);
// 2.处理扫描结果
/**
*
* @param result
* @param barcode
*/
public void handleDecode(Result result, Bitmap barcode) {
inactivityTimer.onActivity();
playBeepSoundAndVibrate();
// 扫描结果
String resultString = result.getText();
if (resultString.equals("")) {
Toast.makeText(CaptureActivity.this, "Scan failed!", Toast.LENGTH_SHORT).show();
} else {
//2.传递扫描结果
Intent resultIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("result", resultString);
bundle.putParcelable("bitmap", barcode);
resultIntent.putExtras(bundle);
this.setResult(RESULT_OK, resultIntent);
}
CaptureActivity.this.finish();
}
//3.收到回传的 结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case SCANNIN_GREQUEST_CODE:
if (resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
//显示扫描到的内容
tv_result.setText(bundle.getString("result"));
//显示
iv_qrcode.setImageBitmap((Bitmap) data.getParcelableExtra("bitmap"));
}
break;
}
}
标签:
原文地址:http://www.cnblogs.com/liuyu0529/p/5273982.html