【达内课程】SQLite(五)项目之编辑联系人列表

【达内课程】SQLite(五)项目之编辑联系人列表,第1张

概述Person实现Parcelable接口 public class Person implements Parcelable { private int id; private String name; private int age; private String phone; private String email; ......

Person实现Parcelable接口

public class Person implements Parcelable {    private int ID;    private String name;    private int age;    private String phone;    private String email;    ......    @OverrIDe    public voID writetoParcel(Parcel dest,int flags) {        dest.writeInt(this.ID);        dest.writeString(this.name);        dest.writeInt(this.age);        dest.writeString(this.phone);        dest.writeString(this.email);    }    protected Person(Parcel in) {        this.ID = in.readInt();        this.name = in.readString();        this.age = in.readInt();        this.phone = in.readString();        this.email = in.readString();    }    public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {        @OverrIDe        public Person createFromParcel(Parcel source) {            return new Person(source);        }        @OverrIDe        public Person[] newArray(int size) {            return new Person[size];        }    };}

MainActivity中点击编辑时,打开新Activity,并且传递数据

@OverrIDe    public boolean onContextItemSelected(MenuItem item) {        switch (item.getItemID()){            case MENU_ITEM_EDIT:                //打开新的Activity                Intent intent = new Intent(this,ContactFormActivity.class);                intent.putExtra("person",persons.get(actionposition));                startActivity(intent);                break;            case MENU_ITEM_DELETE:                ......                break;        }        return super.onContextItemSelected(item);    }

ContactFormActivity

private int mode;    private static final int MODE_ADD = 0;    private static final int MODE_EDIT = 1;@OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_contact_form);        initVIEws();        setListeners();        Person person = getIntent().getParcelableExtra("person");        //判断是否接收到数据        if(person == null){            //增加状态            mode = MODE_ADD;        }else {            mode = MODE_EDIT;            etUsername.setText(person.getname());            etAge.setText(person.getAge()+"");            etPhone.setText(person.getPhone());            etEmail.setText(person.getEmail());            btnSave.setText("编辑");            etUsername.setEnabled(false);            etUsername.setTextcolor(color.parsecolor("#999999"));        }    }

IDao

public interface IDao<T> {    ......    int update(T t);}

PersonDao中重写update方法

@OverrIDe    public int update(Person person) {        DBOpenHelper dbOpenHelper = new DBOpenHelper(context);        sqliteDatabase db = dbOpenHelper.getWritableDatabase();        //执行业务,修改数据        String table = "users";        ContentValues values = new ContentValues();        values.put("_age",person.getAge());        values.put("_phone",person.getPhone());        values.put("_email",person.getEmail());        String whereClause = " _ID = ?";        String[] whereArgs = { person.getID()+"" };        int affectedRows = db.update(table,values,whereClause,whereArgs);        db.close();        db = null;        return affectedRows;    }

ContactFormActivity

private int editID;    private int mode;    private static final int MODE_ADD = 0;    private static final int MODE_EDIT = 1;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_contact_form);        initVIEws();        setListeners();        Person person = getIntent().getParcelableExtra("person");        //判断是否接收到数据        if(person == null){            //增加状态            mode = MODE_ADD;        }else {            mode = MODE_EDIT;            editID = person.getID();            etUsername.setText(person.getname());            etAge.setText(person.getAge()+"");            etPhone.setText(person.getPhone());            etEmail.setText(person.getEmail());            btnSave.setText("编辑");            etUsername.setEnabled(false);            etUsername.setTextcolor(color.parsecolor("#999999"));        }    }...... @OverrIDe    public voID onClick(VIEw vIEw) {        switch (vIEw.getID()){            case R.ID.btn_save:                //获取表单中的数据                String name = etUsername.getText().toString().trim();                String phone = etPhone.getText().toString().trim();                String email = etEmail.getText().toString().trim();                int age = Integer.parseInt(etAge.getText().toString());                Person person = new Person(name,age,phone,email);                PersonDao personDao = new PersonDao(this);                if(mode == MODE_ADD){                    long ID = personDao.insert(person);                    if(ID == -1){                        Toast.makeText(this,"姓名或电子邮件可能冲突!",Toast.LENGTH_SHORT).show();                    }else {                        Toast.makeText(this,"数据增加成功",Toast.LENGTH_SHORT).show();                        etUsername.setText(null);                        etPhone.setText(null);                        etEmail.setText(null);                        etAge.setText(null);                    }                }else {                    person.setID(editID);                    int affectedRows = personDao.update(person);                    if(affectedRows > 0){                        Toast.makeText(this,"修改数据成功",Toast.LENGTH_SHORT).show();                        finish();                    }else {                        Toast.makeText(this,"修改数据失败",Toast.LENGTH_SHORT).show();                    }                }                break;            case R.ID.btn_back:                finish();                break;        }    }
源码下载

https://download.csdn.net/download/u010356768/10441998

总结

以上是内存溢出为你收集整理的【达内课程】SQLite(五)项目之编辑联系人列表全部内容,希望文章能够帮你解决【达内课程】SQLite(五)项目之编辑联系人列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1161912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存