博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓学习-xUtils框架
阅读量:7010 次
发布时间:2019-06-28

本文共 16965 字,大约阅读时间需要 56 分钟。

hot3.png

DbUtils使用方法:

activity_main.xml

MainActivity.java

package com.xiaofei.app.xutils; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Toast; import com.lidroid.xutils.DbUtils; import com.lidroid.xutils.db.sqlite.Selector; import com.lidroid.xutils.db.sqlite.WhereBuilder; import com.lidroid.xutils.exception.DbException; import java.util.List; public class MainActivity extends AppCompatActivity {
DbUtils db; @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); db = DbUtils.create(this,"mydb"); } public void saveClick(View view) {
User user=new User("xiaofei@qq.com","xiaofei"); try {
db.save(user); Toast.makeText(MainActivity.this,"save success",Toast.LENGTH_LONG).show(); } catch (DbException e) {
e.printStackTrace(); } } public void findAllClick(View view) {
try {
List
list=db.findAll(User.class); for (User u:list) {
System.out.println(u); } } catch (DbException e) {
e.printStackTrace(); } } public void selectByClick(View view) {
try {
User user = db.findFirst(Selector.from(User.class).where("name","=","xiaofei")); Toast.makeText(this,user.toString(),Toast.LENGTH_LONG).show(); } catch (DbException e) {
e.printStackTrace(); } } public void updateClick(View view) {
User user=new User(); user.setId(1); user.setEmail("512908113@qq.com"); user.setName("xiaoxiaofei"); try {
db.update(user,"email","name"); Toast.makeText(this,"更新成功",Toast.LENGTH_LONG).show(); } catch (DbException e) {
e.printStackTrace(); } } public void deleteClick(View view) {
try {
db.delete(User.class, WhereBuilder.b("id","=","1")); Toast.makeText(this,"删除成功",Toast.LENGTH_LONG).show(); } catch (DbException e) {
e.printStackTrace(); } } }

User.java

package com.xiaofei.app.xutils; /**  * Created by Goddess on 2016/4/25.  */ public class User {
private int id; private String name; private String email; public int getId() {
return id; } public void setId(int id) {
this.id = id; } public User(String email, String name) {
this.email = email; this.name = name; } public String getEmail() {
return email; } public void setEmail(String email) {
this.email = email; } public String getName() {
return name; } public void setName(String name) {
this.name = name; } public User() {
} @Override public String toString() {
return "User{" + "email='" + email + '\'' + ", id=" + id + ", name='" + name + '\'' + '}'; } }
 

ViewUtils使用方法

  • 完全注解方式就可以进行UI绑定和事件绑定。
  • 无需findViewById和setClickListener等。
// 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;// 取消了之前使用方法名绑定事件的方式,使用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中注入:@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    ViewUtils.inject(this); //注入view和事件    ...    textView.setText("some text...");    ...}//在Fragment中注入:@Overridepublic 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)
 
 

HttpUtils使用方法

JsonObject.java

package com.xiaofei.app.xutils; import java.util.ArrayList; /**  * Created by Administrator on 2016/4/6.  */ public class JsonObject {
private String login; private ArrayList
user=new ArrayList
(); public String getLogin() {
return login; } public void setLogin(String login) {
this.login = login; } public ArrayList
getUser() {
return user; } public void setUser(ArrayList
user) {
this.user = user; } @Override public String toString() {
return "JsonObject{" + "login='" + login + '\'' + ", user=" + user + '}'; } }

User.java

package com.xiaofei.app.xutils; /**  * Created by Administrator on 2016/4/6.  */ public class User {
private int id; private String username; private String password; private String role; public int getId() {
return id; } public void setId(int id) {
this.id = id; } public String getUsername() {
return username; } public void setUsername(String username) {
this.username = username; } public String getPassword() {
return password; } public void setPassword(String password) {
this.password = password; } public String getRole() {
return role; } public void setRole(String role) {
this.role = role; } public User(int id,String username, String password, String role) {
this.id=id; this.username = username; this.password = password; this.role = role; } @Override public String toString() {
return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", role='" + role + '\'' + '}'; } public User() {
} }

MainActivity2.java

package com.xiaofei.app.xutils; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.gson.Gson; import com.lidroid.xutils.HttpUtils; import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.RequestParams; import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.callback.RequestCallBack; import com.lidroid.xutils.http.client.HttpRequest; import java.util.ArrayList; public class MainActivity2 extends Activity {
private EditText editText_username; private EditText editText_password; private Button button_login; private TextView textView_info; @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); editText_username= (EditText) findViewById(R.id.editText_username); editText_password= (EditText) findViewById(R.id.editText_password); button_login= (Button) findViewById(R.id.button_login); textView_info=(TextView)findViewById(R.id.info); button_login.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
String username=editText_username.getText().toString(); String password=editText_password.getText().toString(); HttpUtils httpUtils=new HttpUtils(); String url="http://192.168.1.101:8080/user/LoginServlet"; RequestParams params=new RequestParams(); params.addQueryStringParameter("username",username); params.addBodyParameter("password",password); httpUtils.send(HttpRequest.HttpMethod.POST, url, params, new RequestCallBack
() {
@Override public void onStart() {
super.onStart(); textView_info.setText("conn..."); } @Override public void onLoading(long total, long current, boolean isUploading) {
super.onLoading(total, current, isUploading); if (isUploading) {
textView_info.setText("upload: " + current + "/" + total); } else {
textView_info.setText("reply: " + current + "/" + total); } } @Override public void onSuccess(ResponseInfo
responseInfo) {
String result=responseInfo.result; System.out.println(result); Gson gson = new Gson(); JsonObject object = gson.fromJson(result, JsonObject.class); ArrayList
list=object.getUser(); int count=list.size(); String username=""; for (int i=0;i

activity_main2.xml

 

BitmapUtils 使用方法

BitmapUtils bitmapUtils = new BitmapUtils(this);// 加载网络图片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(new PauseOnScrollListener(bitmapUtils, false, true));listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true, customListener));

前提Bmob云服务里有数据

product.java

package com.xiaofei.app.bitmaputils; import cn.bmob.v3.BmobObject; import cn.bmob.v3.datatype.BmobFile; /**  * Created by Goddess on 2016/4/25.  */ public class product extends BmobObject{
private String name; private BmobFile pic; private double price; private double discount; public product() {
} public product(String name, BmobFile pic, double price, double discount) {
this.name = name; this.pic = pic; this.price = price; this.discount = discount; } public double getDiscount() {
return discount; } public void setDiscount(double discount) {
this.discount = discount; } public String getName() {
return name; } public void setName(String name) {
this.name = name; } public BmobFile getPic() {
return pic; } public void setPic(BmobFile pic) {
this.pic = pic; } public double getPrice() {
return price; } public void setPrice(double price) {
this.price = price; } }

ProductListAdapter.java

package com.xiaofei.app.bitmaputils; import android.content.Context; import android.os.Environment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.lidroid.xutils.BitmapUtils; import java.util.List; /**  * Created by Goddess on 2016/4/25.  */ public class ProductListAdapter extends BaseAdapter {
private Context context; private List
products; public ProductListAdapter(Context context, List
products) {
this.context = context; this.products = products; } public List
getProducts() {
return products; } public void setProducts(List
products) {
this.products = products; } @Override public int getCount() {
return products.size(); } @Override public Object getItem(int position) {
return products.get(position); } @Override public long getItemId(int position) {
return position; } @Override public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder vh; if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.product_list_item, null); vh = new ViewHolder(); vh.textView_name = (TextView) convertView.findViewById(R.id.textView_name); vh.textView_price = (TextView) convertView.findViewById(R.id.textView_price); vh.textView_discount = (TextView) convertView.findViewById(R.id.textView_discount); vh.imageView_product_image = (ImageView) convertView.findViewById(R.id.imageView_product_image); convertView.setTag(vh); } vh = (ViewHolder) convertView.getTag(); product p = products.get(position); vh.textView_name.setText(p.getName()); vh.textView_price.setText("¥" + Math.round((p.getPrice() * (p.getDiscount() / 10) * 100.00)) / 100.00); vh.textView_discount.setText(String.valueOf(p.getDiscount()) + "折"); //用于缓存图片文件 Lru算法 //用于缓存图片文件 Lru算法 String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/x-utils"; BitmapUtils bitmapUtils = new BitmapUtils(context, path); bitmapUtils.configDefaultBitmapMaxSize(100, 100); bitmapUtils.display(vh.imageView_product_image, p.getPic().getFileUrl(context)); return convertView; } static class ViewHolder {
TextView textView_name; TextView textView_price; TextView textView_discount; ImageView imageView_product_image; } }

ProductListActivity.java

package com.xiaofei.app.bitmaputils; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ListView; import java.util.ArrayList; import java.util.List; import cn.bmob.v3.Bmob; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.FindListener; public class ProductListActivity extends AppCompatActivity {
private ListView productListView; private ProductListAdapter pla; private List
products=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_product_list); // 初始化 Bmob SDK // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID Bmob.initialize(this, "0547745e9dca58be6361ccef5131958b"); productListView=(ListView)findViewById(R.id.product_list_view); pla=new ProductListAdapter(ProductListActivity.this,products); loadData(); } private void loadData() {
final View loadView=getLayoutInflater().inflate(R.layout.load_data,null); productListView.addHeaderView(loadView); productListView.setAdapter(pla); BmobQuery
query=new BmobQuery<>(); query.findObjects(ProductListActivity.this, new FindListener
() {
@Override public void onSuccess(List
list) {
System.out.println(list.size()); products=list; productListView.removeHeaderView(loadView); pla.setProducts(products); pla.notifyDataSetChanged(); } @Override public void onError(int i, String s) {
} }); } }

button_bg.xml

load_data.xml

product_list_item.xml

activity_product_list.xml

转载于:https://my.oschina.net/xiaofeiandroid/blog/666132

你可能感兴趣的文章
html字符操作
查看>>
oracle函数
查看>>
百度贴吧爬虫1.0
查看>>
ant+jmeter接口批量执行测试用例
查看>>
Mongodb
查看>>
小规模低性能低流量网站设计原则
查看>>
POI之PPT-元素操纵
查看>>
python 将txt文件转换成excel
查看>>
程序员N容N耻
查看>>
C语言基础及指针⑨联合体与枚举
查看>>
Discuz截取字符串
查看>>
连接数据库操作
查看>>
nginx错误:13: Permission denied
查看>>
如何检查一个单向链表上是否有环?
查看>>
spring核心点总结
查看>>
解决:Determining IP Information for eth0...问题
查看>>
使用虚拟机安装 Linux 操作系统
查看>>
Spring mvc中@RequestMapping 6个基本用法小结
查看>>
使用Chrome 浏览器调试移动端网页 chrome://inspect/#devices
查看>>
Windows10下安装spacemacs
查看>>