代码改变世界

用SQLITE实现存储删除等基本功能的实现

2017-05-16 22:49  做作业呀  阅读(196)  评论(0编辑  收藏  举报

任务的基本思路如下

输入姓名,获取存入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;
        }