SQLite数据库

任务的基本思路

输入姓名,获取存入SQLite数据库,通过adapter将数据传递到listview中增加显示,删除将从数据库中删除并显示

表的创建

public class MyDBHelper extends SQLiteOpenHelper {
private String sql="create table student(_id integer primary key
autoincrement,"+"name text not null,classmate text not null,age integer)";
public MyDBHelper(Context context) {
super(context, "studentInfo", null,1);
}



//app中无数据或版本为1,调用
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(sql);

}
//更新数据库,当新的版本号大于old会调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists student");
onCreate(db);

}
}

数据的获取和删除

 

public class Name implements Serializable {
private int _id;
private String name;
public Name(){
}
public Name(String name){
this.name=name;
}
public int get_id() {
return _id;
}
public void set_id(int _id) {
this._id = _id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

DAO

 

public void insert(Name name){

db=helper.getWritableDatabase();

ContentValues values=new ContentValues();
values.put("name",name.getName());

db.insert("student",null,values);
}

public Cursor selectAll() {
db =helper.getReadableDatabase();
Cursor cursor= db.query("student",null,null,null,null,null,null);
return cursor;
}
public void delete(int id){
db = helper.getWritableDatabase();
db.delete("student","_id=?",new String[]{String.valueOf(id)

adapter的创建

public Adapter(Context context, Cursor c) {
super(context, c, 0);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
return LayoutInflater.from(context).inflate(R.layout.item,viewGroup,false);
}
@Override
public void studentView(View view, Context context, Cursor cursor) {
TextView name= (TextView) view.findViewById(R.id.tvname);
name.setText(cursor.getString(cursor.getColumnIndex("name")));
}

主方法的实现代码

public class MainActivity extends AppCompatActivity {
private EditText et_name;
private ListView data;
private Adapter adapter;
private StudentDAO studentDAO;
private Cursor cursor;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et_name = (EditText)findViewById(R.id.et_name);

data = (ListView)findViewById(R.id.data);
//查询数据并进行显示
studentDAO = new StudentDAO(this);
cursor = studentDAO.selectAll();
if(cursor!=null){
Adapter = new Adapter(MainActivity.this,cursor);
data.setAdapter(adapter);
}


}

public void onClick(View view) {
switch(view.getId()){
case R.id.add:
//add数据
String name = et_input.getText().toString();
personDAO.insert(name);
cursor = personDAO.selectAll();
if(cursor!=null){
adapter = new Adapter(this,cursor);
data.setAdapter(adapter);
}
break;
case R.id.delete:
//delete数据
if(cursor!=null){
if(cursor.moveToFirst()){
studentDAO.delete(cursor.getString(cursor.getColumnIndex("_id")));
cursor = studentDAO.selectAll();
}
}
adapter = new Adapter(this,cursor);
data.setAdapter(adapter);
break;
}
posted @ 2017-05-16 22:17  Passengerlc  阅读(109)  评论(0编辑  收藏  举报