一行代码玩转android数据库之增删改查,超级简单 第三方框架xUtils改写 简单实用

demo下载

     

  

  

  

 

话不多说,demo里有注释详细说明,粘贴到项目,导入jar包就可以用了

package com;import java.util.ArrayList;import java.util.List;import com.db.DbHelper;import com.db.R;import com.db.adapter.MyAdapter;import com.db.bean.People;import com.db.view.DialogView;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.Toast;/* * https://github.com/wyouflf/xUtils */public class MyActivity extends Activity implements OnClickListener {private ListView listview;private MyAdapter adapter;private DbHelper dbHelper;private EditText etSelect;private List pList = new ArrayList();private People entity = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);findViewById(R.id.btn_create).setOnClickListener(this);findViewById(R.id.btn_select).setOnClickListener(this);findViewById(R.id.btn_searchdesc).setOnClickListener(this);findViewById(R.id.btn_selectname).setOnClickListener(this);findViewById(R.id.btn_selectlike).setOnClickListener(this);etSelect = (EditText) findViewById(R.id.et_select);listview = (ListView) findViewById(R.id.listview);dbHelper = DbHelper.getInstance(this);}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();// getData();// 造数据adapter = new MyAdapter(this, pList);listview.setAdapter(adapter);listview.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {// TODO Auto-generated method stubshowAlertDialog(arg2);}});select();// 数据库查询所有数据}private void showAlertDialog(final int position) {final DialogView dialog = new DialogView(this, true, null);entity = pList.get(position);dialog.setMessage(entity.toString());dialog.setAddClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubsave();dialog.dismiss();}});dialog.setUpdateClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {addDialog(position);dialog.dismiss();}});dialog.setDeleteClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {delete(entity.getId());dialog.dismiss();}});dialog.show();}private void addDialog(int position) {entity = pList.get(position);final AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.setView(LayoutInflater.from(this).inflate(R.layout.dialog_add, null));dialog.show();dialog.getWindow().setContentView(R.layout.dialog_add);Button btnPositive = (Button) dialog.findViewById(R.id.btn_submit);Button btnNegative = (Button) dialog.findViewById(R.id.btn_cancel);final EditText etContent = (EditText) dialog.findViewById(R.id.et_name);etContent.setText(entity.getName());btnPositive.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {String name = etContent.getText().toString().trim();if (DialogView.isNullEmptyBlank(name)) {etContent.setError("输入内如不能为空");} else {update(entity.getId(), name);dialog.dismiss();}}});btnNegative.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {dialog.dismiss();}});}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.btn_create:create();break;case R.id.btn_select:select();break;case R.id.btn_searchdesc:searchDesc();break;case R.id.btn_selectname:String nameStr = etSelect.getText().toString().trim();if (0 < nameStr.length()) {selectName(nameStr);}break;case R.id.btn_selectlike:String nameLike = etSelect.getText().toString().trim();if (0 < nameLike.length()) {selectLike(nameLike);}break;}}// 增加private void save() {entity = new People();entity.setName("小雨");entity.setAge(25);entity.setSex("女");entity.setAddress("深圳");boolean isTrue = dbHelper.save(entity);if (isTrue) {searchDesc();showToast("添加成功");} else {showToast("添加失败");}}// 删除 根据id删除private void delete(int id) {boolean isTrue = dbHelper.deleteCriteria(People.class, "id", id);if (isTrue) {select();showToast("删除成功");} else {showToast("删除失败");}}// 修改 根据id修改nameprivate void update(int id, String name) {entity = (People) dbHelper.searchOne(People.class, "id", id);entity.setName(name);boolean isTrue1 = dbHelper.update(entity, "name");if (isTrue1) {select();showToast("修改成功");} else {showToast("修改失败");}}// 根据条件name查询private void selectLike(String name) {pList.clear();pList = dbHelper.searchLike(People.class, "name", name);if (pList != null) {adapter.setUserEntities(pList);}}// 根据条件name查询private void selectName(String name) {pList.clear();entity = (People) dbHelper.searchOne(People.class, "name", name);if ((pList != null) && (entity != null)) {pList.add(entity);adapter.setUserEntities(pList);}}// 正叙 查询所有private void select() {pList.clear();pList = dbHelper.search(People.class);if (pList != null) {adapter.setUserEntities(pList);}}// 倒叙 查询所有private void searchDesc() {pList.clear();pList = dbHelper.searchDesc(People.class);if (pList != null) {adapter.setUserEntities(pList);}}// 创建 插入全部对象private void create() {boolean isTrue = dbHelper.saveAll(pList);if (isTrue) {showToast("创建成功");} else {showToast("创建失败");}}private void showToast(String name) {Toast.makeText(this, name, Toast.LENGTH_SHORT).show();}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();pList = null;entity = null;}// 造数据private void getData() {for (int i = 0; i < 1000; i++) {entity = new People();entity.setId(i);entity.setName("小明" + i);entity.setAddress("上海");entity.setAge(15 + i);entity.setSex("男");pList.add(entity);}}}

demo下载


更多相关文章

  1. 第八章、理解Window和WindowManager
  2. React-native 真机代码不更新
  3. 为Android2.3添加下拉通知栏的快捷开关
  4. Android(安卓)5.1长按电源键添加重启功能
  5. Android(安卓)for S3C2440
  6. Android(安卓)Studio中修改gradle插件版本和Gradle版本
  7. 解决OPPO手机在Android(安卓)studio 环境下安装错误运行失败的问
  8. android statusbar 的修改
  9. Android(安卓)studio常见问题

随机推荐

  1. Android子线程不可以刷新UI么?
  2. PackageInstaller 原理简述
  3. Android(安卓)UI之Notification
  4. 错误记录seterror的文字不显示
  5. Android实用插件,持续更新
  6. 【Android】fragment+Viewpager+自动隐藏
  7. Android个人使用adb命令总结(持续更新...
  8. 腾讯音乐初试翻车记录(Android)
  9. Android(安卓)MultiDex 解析与使用
  10. Retrofit2 ,Dagger2等常用框架注解功能介