徹底註解方式就能夠進行UI綁定和事件綁定。
無需findViewById和setClickListener等。
1.view註解
// xUtils的view註解要求必須提供id,以使代碼混淆不受影響。
@ViewInject
(
R
.
id
.
textView
)
TextView textView;
//@ViewInject(vale=R.id.textView, parentId=R.id.parentView)
//TextView textView;
@ResInject(id = R.string.label, type = ResType.String)
private String label;
2.監聽的註解
// 取消了以前使用方法名綁定事件的方式,使用id綁定不受混淆影響
// 支持綁定多個id
@OnClick({R.id.id1, R.id.id2, R.id.id3})
// or @OnClick(value={R.id.id1, R.id.id2, R.id.id3}, parentId={R.id.pid1, R.id.pid2, R.id.pid3})
// 更多事件支持參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
@OnClick(R.id.test_button)
public void testButtonClick(View v){
// 方法簽名必須和接口中的要求一致
}
註解完後,必須在activity或者fragment中注入view與事件
3.注入view與事件
//在Activity中注入:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewUtils.inject(this);//注入view和事件...
textView.setText("some text...");
}
//在Fragment中注入:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.bitmap_fragment, container,false);// 加載fragment佈局
ViewUtils.inject(this, view);//注入view和事件
}
//在PreferenceFragment中注入:
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
ViewUtils.inject(this, getPreferenceScreen());//注入view和事件
}
// 其餘重載
// inject(View view);
// inject(Activity activity)
// inject(PreferenceActivity preferenceActivity)
// inject(Object handler, View view)
// inject(Object handler, Activity activity)
// inject(Object handler, PreferenceGroup preferenceGroup)
// inject(Object handler, PreferenceActivity preferenceActivity)
|
//RequestParams params = new RequestParams();
// 默認編碼UTF-8
//params.addHeader("name", "value"); //params.addQueryStringParameter("name", "value"); HttpUtils http = new HttpUtils(); http.configCurrentHttpCacheExpiry(1000 * 10); http.send(HttpRequest.HttpMethod.GET, " http://www.baidu.com", //params, new RequestCallBack<String>() { @Override public void onStart() { resultText.setText("conn..."); } @Override public void onLoading(long total, long current, boolean isUploading) { resultText.setText(current + "/" + total); } @Override public void onSuccess(ResponseInfo<String> responseInfo) { resultText.setText("response:" + responseInfo.result); } @Override public void onFailure(HttpException error, String msg) { resultText.setText(msg); } }); |
// 設置請求參數的編碼
//RequestParams params = new RequestParams("GBK"); RequestParams params = new RequestParams(); // 默認編碼UTF-8 //params.addQueryStringParameter("qmsg", "你好");
// 添加數據
//params.addBodyParameter("msg", "測試"); // 添加文件 params.addBodyParameter("file", new File("/sdcard/test.zip"));
// 繼續添加文件
//params.addBodyParameter("testfile", new File("/sdcard/test2.zip"));
// 用於非multipart表單的單文件上傳
//params.setBodyEntity(new FileUploadEntity(new File("/sdcard/test.zip"), "binary/octet-stream")); // 用於非multipart表單的流上傳 //params.setBodyEntity(new InputStreamUploadEntity(stream ,length)); HttpUtils http = new HttpUtils(); // 設置返回文本的編碼, 默認編碼UTF-8 //http.configResponseTextCharset("GBK"); // 自動管理 cookie http.configCookieStore(preferencesCookieStore); http.send(HttpRequest.HttpMethod.POST,
"http://192.168.1.5:8080/UploadServlet",
params,
new RequestCallBack<String>() {
@Override
public void onStart() {
//開始
resultText.setText("conn...");
}
@Override
public void onLoading(long total, long current, boolean isUploading) {
//進度
if (isUploading) {
resultText.setText("upload: " + current + "/" + total);
} else {
resultText.setText("reply: " + current + "/" + total);
}
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
//成功 返回的結果:responseInfo.result
resultText.setText("reply: " + responseInfo.result);
}
@Override
public void onFailure(HttpException error, String msg) {
//失敗 錯誤信息:msg
resultText.setText(msg);
}
});
|
HttpUtils http = new HttpUtils();
HttpHandler handler = http.download(
"http://apache.dataguru.cn/httpcomponents/httpclient/source/httpcomponents-client-4.2.5-src.zip",
"/sdcard/httpcomponents-client-4.2.5-src.zip",
true,
//boolean autoResume:若是目標文件存在,接着未完成的部分繼續下載。服務器不支持RANGE時將重新下載。
true,
//boolean autoRename:若是從請求返回信息中獲取到文件名,下載完成後自動重命名。
new RequestCallBack<File>() {
@Override
public void onStart() {
// 開始
resultText.setText("conn...");
}
@Override
public void onLoading(long total, long current, boolean isUploading) {
// 進度
if (isUploading) {
resultText.setText("upload: " + current + "/" + total);
} else {
resultText.setText("reply: " + current + "/" + total);
}
}
@Override
public void onSuccess(ResponseInfo<File> responseInfo) {
// 成功 返回的結果:responseInfo.result
resultText.setText("reply: " + responseInfo.result);
}
@Override
public void onFailure(HttpException error, String msg) {
// 失敗 錯誤信息:msg
resultText.setText(msg);
}
// 調用cancel()方法中止下載
handler.cancel();
|
//BitmapUtils能夠說單例的 ,頁能夠根據須要重載多個獲取實例
BitmapUtils bitmapUtils =newBitmapUtils(this);//
//設置默認加載圖片
bitmapUtils.configDefaultLoadingImage(R.drawable.ic_launcher);
//設置失敗後加載的圖片
bitmapUtils.configDefaultLoadFailedImage(R.drawable.bitmap);
//設置Bitmap參數
bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565);
//內存緩存是否可用
//bitmapUtils.configMemoryCacheEnabled(false);
//硬盤緩存是否可用
//bitmapUtils.configDiskCacheEnabled(false);
//
//bitmapUtils.configDefaultAutoRotation(true);
//尺寸縮放動畫
//ScaleAnimation animation = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f,
// Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
//animation.setDuration(800);
//設置默認圖片加載動畫
//bitmapUtils.configDefaultImageLoadAnimation(animation);
// 設置最大寬高, 不設置時更具控件屬性自適應.
bitmapUtils.configDefaultBitmapMaxSize(BitmapCommonUtils.getScreenSize(getActivity()).scaleDown(3));
// 滑動時加載圖片,快速滑動時不加載圖片
//imageListView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true));
//加載網絡圖片
bitmapUtils.display(testImageView,"http://bbs.lidroid.com/static/image/common/logo.png");
// 加載本地圖片(路徑以/開頭, 絕對路徑)
bitmapUtils.display(testImageView,"/sdcard/test.jpg");
// 加載assets中的圖片(路徑以assets開頭)
bitmapUtils.display(testImageView,"assets/img/wallpaper.jpg");
// 使用ListView等容器展現圖片時可經過PauseOnScrollListener控制滑動和快速滑動過程當中時候暫停加載圖片
listView.setOnScrollListener(newPauseOnScrollListener(bitmapUtils,false,true));
listView.setOnScrollListener(newPauseOnScrollListener(bitmapUtils,false,true, customListener));
|
package com.example.dbdemo;
import java.util.Date;
import com.lidroid.xutils.db.annotation.Column;
import com.lidroid.xutils.db.annotation.Finder;
import com.lidroid.xutils.db.annotation.Id;
import com.lidroid.xutils.db.annotation.Table;
import com.lidroid.xutils.db.annotation.Transient;
import com.lidroid.xutils.db.sqlite.FinderLazyLoader;
@Table(name = "person")// 建議加上註解, 混淆後表名不受影響
public class Person {
//必須有的屬性
@Id
private int id;
@Column(column = "name")
private String name;
@Column(column = "email")
private String email;
@Column(column = "isAdmin")
private boolean isAdmin;
@Column(column = "time")
private Date time;
// Transient使這個列被忽略,不存入數據庫
@Transient
private String willIgnore;
// 靜態字段也不會存入數據庫
private static String staticFieldWillIgnore;
@Finder(valueColumn = "id", targetColumn = "parentId")
public FinderLazyLoader<Child> children;
// 關聯對象多時建議使用這種方式,延遲加載效率較高。
// @Finder(valueColumn = "id",targetColumn = "parentId")
// public Child children;
// @Finder(valueColumn = "id", targetColumn = "parentId")
// private List<Child> children;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getWillIgnore() {
return willIgnore;
}
public void setWillIgnore(String willIgnore) {
this.willIgnore = willIgnore;
}
public boolean isAdmin() {
return isAdmin;
}
public void setAdmin(boolean isAdmin) {
this.isAdmin = isAdmin;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
|
// DbUtils 的建立有多個create方法,根據各自需求
DbUtils dbUtils = DbUtils.create(this, "demo.db");
dbUtils.configAllowTransaction(true);
dbUtils.configDebug(true);
Person p= new Person();
p.setEmail("3333");
p.setName("makk");
p.setAdmin(true);
p.setTime(new Date());
Child child = new Child();
child.name = "child' name";
try {
dbUtils.save(p);
// 保存對象關聯數據庫生成的id
// dbUtils.saveBindingId(p);
//其餘操做
//刪除
dbUtils.delete(p);
//更新
dbUtils.update(p, "name","email");
//查找
dbUtils.findAll(Selector.from(Person.class).where("id", "in", new int[] { 1, 3, 6 }));
} catch (DbException e) {
e.printStackTrace();
}
|
// 自動添加TAG,格式: className.methodName(L:lineNumber)
// 可設置全局的LogUtils.allowD = false,LogUtils.allowI = false...,控制是否輸出log。
// 自定義log輸出LogUtils.customLogger = new xxxLogger();
LogUtils.d("wyouflf");
|