您的位置:首页 > 数据库

AndroidSQlite增删查更新操作,listview展示带长按和代码注释

2016-04-29 15:10 399 查看
数据库助手

/**

* @author: ZQF_DemoStyle


* @类 说 明:

* @version 1.0

* @创建时间:2016-4-29 上午11:24:12

*

*/

public class MyDBOpenHelp extends SQLiteOpenHelper {

private static final String DB_NAME = "eteng.db";

public static final String TAble_NAME = "table_person";

private static final int DB_VERSION = 1;

public MyDBOpenHelp(Context context) {

super(context, DB_NAME, null, DB_VERSION);

}

// 数据库创建时调用

@Override

public void onCreate(SQLiteDatabase db) {

String sql = "create table if not exists "

+ TAble_NAME

+ "(_id integer primary key autoincrement, name varchar(5), age integer(5),sex vachar(5))";

db.execSQL(sql);

System.out.println("创建数据库");

}

// 数据库升级,更新操作调用

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

System.out.println("数据库升级");

}

}

public class MainActivity extends Activity {

private MyDBOpenHelp dbOpenHelp;

private Button insert_btn, delete_btn, updata_btn, query_btn;

private ListView lv;

private ArrayList<PersonEntity> list = new ArrayList<PersonEntity>();

private PersonAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

dbOpenHelp = new MyDBOpenHelp(this);

SQLiteDatabase database = dbOpenHelp.getWritableDatabase();

database.close();

initView();

}

private void initView() {

lv = (ListView) findViewById(R.id.sqlite_lv);

insert_btn = (Button) findViewById(R.id.insert_btn);

delete_btn = (Button) findViewById(R.id.delete_btn);

updata_btn = (Button) findViewById(R.id.updata_btn);

query_btn = (Button) findViewById(R.id.query_btn);

// 插入数据

insert_btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

SQLiteDatabase db = dbOpenHelp.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("name", "张三");

values.put("age", 20);

values.put("sex", "男");

db.insert(dbOpenHelp.TAble_NAME, null, values);

values.put("name", "小丽");

values.put("age", 12);

values.put("sex", "女");

db.insert(dbOpenHelp.TAble_NAME, null, values);

db.close();

query();

}

});

// 删除数据

delete_btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String detele_name = "小丽";

delete(detele_name);

}

});

// 更新数据

updata_btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

updata();

}

});

// 查询数据

query_btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

query();

}

});

// 长按操作

lv.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView<?> parent, View view,

final int position, long id) {

AlertDialog.Builder builder = new AlertDialog.Builder(

MainActivity.this);

builder.setMessage("删除此条记录");

builder.setNegativeButton("取消",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

}

});

builder.setPositiveButton("确定",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

String name = list.get(position).getName();

delete(name);

}

});

builder.show();

return false;

}

});

}

// 执行修改数据的操作

// table:表名

// 更新的数据

// whereClause:修改条件

// 更新操作

private void updata() {

SQLiteDatabase db = dbOpenHelp.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("name", "侣哥哥");

values.put("age", 15);

values.put("sex", "男");

db.update(dbOpenHelp.TAble_NAME, values, "name=?",

new String[] { "张三" });

query();

}

// 删除一条数据

// table:表名

// whereClause:删除条件

// whereArgs:满足删除的条件

private void delete(String detele_name) {

SQLiteDatabase db = dbOpenHelp.getWritableDatabase();

db.delete(dbOpenHelp.TAble_NAME, "name=?", new String[] { detele_name });

db.close();

query();

}

// 执行数据库的查询操作

// table:表名

// columns:被查询的列(字段),可以有很多个

// selection:查询条件,null代表没有条件,即全部查询

// selectionArgs:满足查询条件

// groupBy:指定分组(不常用)

// having:分组筛选数据关键字(不常用)

// orderBy:排序

private void query() {

list.clear();

String name = null;

String sex = null;

SQLiteDatabase db = dbOpenHelp.getWritableDatabase();

Cursor cursor = db.query(dbOpenHelp.TAble_NAME, new String[] { "name",

"sex" }, null, null, null, null, null);

int nameIndex = cursor.getColumnIndex("name");

int sexindex = cursor.getColumnIndex("sex");

while (cursor.moveToNext()) {

name = cursor.getString(nameIndex);

sex = cursor.getString(sexindex);

PersonEntity entity = new PersonEntity();

entity.setName(name);

entity.setSex(sex);

list.add(entity);

}

cursor.close();

db.close();

adapter = new PersonAdapter(this, list);

lv.setAdapter(adapter);

adapter.notifyDataSetChanged();

}

@Override

protected void onDestroy() {

super.onDestroy();

}

}

/**

* @author: ZQF_DemoStyle

* @类 说 明:

* @version 1.0

* @创建时间:2016-4-29 下午2:05:01

*

*/

public class PersonEntity {

private String name;

private int age;

private String sex;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

}

//适配器

public class PersonAdapter extends BaseAdapter {

private ArrayList<PersonEntity> list;

private LayoutInflater inflater;

public PersonAdapter(Context context, ArrayList<PersonEntity> list) {

this.list = list;

inflater = LayoutInflater.from(context);

}

@Override

public int getCount() {

return list != null ? list.size() : null;

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holde;

if (convertView == null) {

convertView = inflater.inflate(R.layout.person_layout, null);

holde = new ViewHolder();

holde.name = (TextView) convertView.findViewById(R.id.textView1);

holde.sex = (TextView) convertView.findViewById(R.id.textView2);

convertView.setTag(holde);

} else {

holde = (ViewHolder) convertView.getTag();

}

holde.name.setText(list.get(position).getName());

holde.sex.setText(list.get(position).getSex());

return convertView;

}

class ViewHolder {

TextView name;

TextView sex;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: