当前位置:首页 > 数据库 > SQlite

Android的SQLiteDataBase小项目,实现user类登陆注册以及student类增删改查

关于SQLiteDataBase这块,大体有两种主要的实现方式,一种是不使用Helper类的方式,此种方式存在一个弊端,即不能oncreate两次,如果重复使用oncreate的button,则会报错,所以为了避免这种错误,在此项目中使用类继承SQLiteOpenHelper的方式进行SQLite3小型数据库的小项目开发,简单的实现登陆注册,以及对特定vo类的增删改查,中间还夹杂了ListView,ArrayAdapter,以及Intent的散知识点。
以下为正文:
首先介绍以下我写的项目的框架,总的为几个结构。
第一个部分为是所有项目都需要的简单java类,即与表对应的vo类。
第二个部分为Acitivty部分,总的有三个Activity:
1.LoginActivity,登陆界面
2.RegisterAcitivity ,注册界面
3.MainActivity,实现增删改查的界面
第三个部分为逻辑部分,即增删改查之类的方法,sql语句
第四个部分为Helper类

Helper类中

第二个方法OnUpgrade内容为空,因为此处用不到,也可加入DROP TABLE的语句,然后复写oncreate实现表的更新。
此类主要目的是提供构造方法,以及创建数据库表,参数为上下文环境,数据库名,工厂,数据库版本。
在逻辑层以及activity层,实例化此类,能够通过参数传递数据库的内容,实现增删改查,简单的说此类是数据库连接类。

 

代码如下:

              1
            package
             com.example.sqlitedatabase;

              2
              3
            import
             java.util.ArrayList;

              4
            import
             java.util.List;

              5
              6
            import
             android.app.Activity;

              7
            import
             android.os.Bundle;

              8
            import
             android.util.Log;

              9
            import
             android.view.View;

             10
            import
             android.view.View.OnClickListener;

             11
            import
             android.widget.ArrayAdapter;

             12
            import
             android.widget.Button;

             13
            import
             android.widget.EditText;

             14
            import
             android.widget.ListView;

             15
            import
             android.widget.Toast;

             16
             17
            import
             com.iotek.entity.Student;

             18
             19
            public
            class MainActivity extends Activity implements OnClickListener {
 20private EditText et_name;
 21private EditText et_age;
 22private EditText et_score;
 23private EditText et_query;
 24 25private Button bt_add;
 26private Button bt_del;
 27private Button bt_update;
 28private Button bt_query;
 29private Button bt_all;
 30 31private ArrayAdapter<String> adapter;
 32private ListView lv_adapter;
 33private List<Student> stuList = new ArrayList<Student>();
 34private String[] data;
 35// 用来使用其中的增删改查 36private StudentBiz studentBiz = new StudentBiz(MainActivity.this);
 37 38    @Override
 39protectedvoid onCreate(Bundle savedInstanceState) {
 40super.onCreate(savedInstanceState);
 41        setContentView(R.layout.activity_main);
 42// 关联控件 43        initView();
 44// 注册监听button 45        registerListener();
 46    }
 47 48// 注册监听button 49privatevoid registerListener() {
 50         bt_add.setOnClickListener(this);
 51         bt_del.setOnClickListener(this);
 52         bt_update.setOnClickListener(this);
 53         bt_query.setOnClickListener(this);
 54         bt_all.setOnClickListener(this);
 55 56    }
 57 58// 关联控件 59privatevoid initView() {
 60         et_name = (EditText) findViewById(R.id.et_name);
 61         et_age = (EditText) findViewById(R.id.et_age);
 62         et_score = (EditText) findViewById(R.id.et_score);
 63         et_query = (EditText) findViewById(R.id.et_query);
 64 65         bt_add = (Button) findViewById(R.id.bt_add);
 66         bt_del = (Button) findViewById(R.id.bt_del);
 67         bt_update = (Button) findViewById(R.id.bt_update);
 68         bt_query = (Button) findViewById(R.id.bt_query);
 69         bt_all = (Button) findViewById(R.id.bt_all);
 70         lv_adapter = (ListView) findViewById(R.id.listView1);
 71    }
 72 73// 监听button 74    @Override
 75publicvoid onClick(View v) {
 76switch (v.getId()) {
 77case R.id.bt_add:
 78if(et_age.getText().toString().equals("")||et_score.getText().toString().equals("")||et_name.getText().toString().equals("")){
 79break;
 80            }
 81             String name = et_name.getText().toString();
 82int age = Integer.valueOf(et_age.getText().toString());
 83int score = Integer.valueOf(et_score.getText().toString());
 84             Student student = new Student(name, age, score);    
 85             studentBiz.addStudent(student);// 添加到数据库 86            DynamicData();
 87break;
 88case R.id.bt_del:
 89if(et_query.getText().toString().equals("")){
 90break;
 91            }
 92int _id = Integer.valueOf(et_query.getText().toString());
 93 94            studentBiz.delStudent(_id);
 95 96            DynamicData(); 
 97break;
 98case R.id.bt_update:
 99if(et_query.getText().toString().equals("")||et_age.getText().toString().equals("")||et_score.getText().toString().equals("")||et_name.getText().toString().equals("")){
100break;
101            }
102int _id1 = Integer.valueOf(et_query.getText().toString());
103             String name1 = et_name.getText().toString();
104int age1 = Integer.valueOf(et_age.getText().toString());
105int score1 = Integer.valueOf(et_score.getText().toString());
106             Student stu_update = new Student(_id1, name1, age1, score1);
107            studentBiz.updateStudent(stu_update);
108if(studentBiz.updateStudent(stu_update)==0){
109break;
110            }    
111            DynamicData();
112break;
113case R.id.bt_query:
114if(et_query.getText().toString().equals("")){
115break;
116            }
117int id2 = Integer.valueOf(et_query.getText().toString());
118119             Student stu1 = studentBiz.getStudentById(id2);
120if(stu1==null){
121                 Toast.makeText(MainActivity.this, "没有这个学生", Toast.LENGTH_LONG).show();
122break;
123            }
124125             data = new String[] { stu1.toString() };
126            MakeAdapter();
127128break;
129case R.id.bt_all:
130            DynamicData();
131for (Student stu : stuList) {
132                 Log.i("student", stu.toString());
133            }
134break;
135136default:
137break;
138        }
139    }
140141/**142     * 实时刷新数据
143*/144privatevoid DynamicData() {
145         studentBiz = new StudentBiz(MainActivity.this);
146         stuList = studentBiz.getAllStudents();
147        SetData();
148        MakeAdapter();
149    }
150151/**152     * 设置adapter数据
153*/154privatevoid SetData() {
155         data = new String[stuList.size()];
156for (int i = 0; i < data.length; i++) {
157             data[i] = stuList.get(i).toString();
158        }
159    }
160161/**162     * 适配器
163*/164privatevoid MakeAdapter() {
165166         adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.item,
167                R.id.tv_item, data);
168        lv_adapter.setAdapter(adapter);
169170    }
171172/**173     * 查询所有数据
174*/175privatevoid SelectAll() {
176         studentBiz = new StudentBiz(MainActivity.this);
177         stuList = studentBiz.getAllStudents();
178for (Student stu : stuList) {
179             Log.i("student", stu.toString());
180        }
181    }
182 }
             1
            package
             com.example.sqlitedatabase;

             2
             3
            import
             android.app.Activity;

             4
            import
             android.content.Intent;

             5
            import
             android.os.Bundle;

             6
            import
             android.view.View;

             7
            import
             android.view.View.OnClickListener;

             8
            import
             android.widget.Button;

             9
            import
             android.widget.EditText;

            10
            import
             android.widget.TextView;

            11
            import
             android.widget.Toast;

            12
            13
            public
            class LoginActivity extends Activity implements OnClickListener {
14private EditText et_username, et_password;
15private Button bt_log, bt_reg;
16private UserService userService = new UserService(LoginActivity.this);
1718    @Override
19protectedvoid onCreate(Bundle savedInstanceState) {
20// TODO Auto-generated method stub21super.onCreate(savedInstanceState);
22        setContentView(R.layout.login);
23        findView();
24        registerListener();
25    }
2627privatevoid registerListener() {
28         bt_log.setOnClickListener(this);
29         bt_reg.setOnClickListener(this);
3031    }
3233privatevoid findView() {
34         et_username = (EditText) findViewById(R.id.et_username);
35         et_password = (EditText) findViewById(R.id.et_password);
36         bt_log = (Button) findViewById(R.id.bt_log);
37         bt_reg = (Button) findViewById(R.id.bt_reg);
38    }
3940    @Override
41publicvoid onClick(View view) {
42switch (view.getId()) {
43/**44         * 登陆
45*/46case R.id.bt_log:
47             String Uname = et_username.getText().toString();
48             String Upass = et_password.getText().toString();
49// 登陆成功返回的flag是true50boolean flag = userService.Login(Uname, Upass);
51if (flag) {
52                 Intent intent = new Intent();
53                 intent.setClass(LoginActivity.this, MainActivity.class);
54                startActivity(intent);
55             } else {
56                 Toast.makeText(LoginActivity.this, "没有此用户,请注册",
57                        Toast.LENGTH_LONG).show();
58            }
59break;
60/**61         * 注册
62*/63case R.id.bt_reg:
64             Intent intent = new Intent();
65             intent.setClass(LoginActivity.this, RegisterActivity.class);
66            startActivity(intent);
67break;
68default:
69break;
70        }
7172    }
73 }
             1
            package
             com.example.sqlitedatabase;

             2
             3
            import
             android.app.Activity;

             4
            import
             android.content.Intent;

             5
            import
             android.os.Bundle;

             6
            import
             android.view.View;

             7
            import
             android.view.View.OnClickListener;

             8
            import
             android.widget.Button;

             9
            import
             android.widget.EditText;

            10
            import
             android.widget.Toast;

            11
            12
            public
            class RegisterActivity extends Activity {
13private EditText et_regname, et_regpsw;
14private Button bt_reg;
15private UserService service = new UserService(RegisterActivity.this);
1617    @Override
18protectedvoid onCreate(Bundle savedInstanceState) {
19// TODO Auto-generated method stub20super.onCreate(savedInstanceState);
21        setContentView(R.layout.register);
22/**23         * 关联控件
24*/25        findView();
26/**27         * 注册button的监听
28*/29        registerListener();
30    }
3132privatevoid registerListener() {
33         bt_reg.setOnClickListener(new OnClickListener() {
3435            @Override
36publicvoid onClick(View v) {
37                 String Uname = et_regname.getText().toString();
38                 String Upass = et_regpsw.getText().toString();
39boolean flag = service.Register(Uname, Upass);
40/**41                 * flag为Register方法返回值,成功为true
42*/43if (flag) {
44                     Intent intent = new Intent();
45                     intent.setClass(RegisterActivity.this, LoginActivity.class);
46                    startActivity(intent);
47                 } else {
48                     Toast.makeText(RegisterActivity.this, "注册失败,重新注册",
49                            Toast.LENGTH_LONG).show();
50                }
5152            }
53        });
5455    }
5657privatevoid findView() {
58         et_regname = (EditText) findViewById(R.id.et_regname);
59         et_regpsw = (EditText) findViewById(R.id.et_regpsw);
60         bt_reg = (Button) findViewById(R.id.reg_button);
61    }
62 }
            package
             com.example.sqlitedatabase;


            import
             android.content.Context;

            import
             android.database.sqlite.SQLiteDatabase;

            import
             android.database.sqlite.SQLiteDatabase.CursorFactory;

            import
             android.database.sqlite.SQLiteOpenHelper;


            /**
            
 * 这个类是sqlite数据路的一个帮助类,主要用来创建数据库和表,或者多表进行修改(管理数据库)
 * 
 * 
            @author
             Administrator
 * 
 
            */
            public
            class DBHelper extends SQLiteOpenHelper {
    privatestaticfinal String DBNAME = "data.db";
    privatestaticfinalint VERSION = 1;

    /**
     * 数据库和oncreate方法都是在第一次调用getWritableDatabase() or getReadableDatabase()
     * 方法的时候才会创建数据库和数据表
     * 
     * @param context
     */public DBHelper(Context context) {
        super(context, DBNAME, null, VERSION);
    }

    /**
     * SQLiteDatabase用来操作数据库的一个对象,内部提供很多方法来操作
     */
    @Override
    publicvoid onCreate(SQLiteDatabase db) {
    db.execSQL("create table student(_id integer primary key autoincrement,name varchar(20)"
            + " not null,age integer check(age>=18 and age<=100),score integer);");
  db.execSQL("create table user(id integer primary key autoincrement,username varchar(64),"
          + "password varchar(64))");
    }

    /**
     * 当安装的时候发现数据库版本号比以前的数据库版本号高,就会执行此方法来进行对 数据库进行更新
     */
    @Override
    publicvoid onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

}
            package
             com.example.sqlitedatabase;


            import
             java.util.ArrayList;

            import
             java.util.List;


            import
             android.content.ContentValues;

            import
             android.content.Context;

            import
             android.database.Cursor;

            import
             android.database.sqlite.SQLiteDatabase;

            import
             android.util.Log;


            import
             com.iotek.entity.Student;


            public
            class
             StudentBiz {
    
            private DBHelper dbHelper = null;

    public StudentBiz(Context context) {
        dbHelper = new DBHelper(context);
    }

    /**
     * 添加一个学生
     * 
     * @param stu
     * @return*/publiclong addStudent(Student stu) {
        /**
         * 这行代码一定要有,getWritableDatabase()获取SQLiteDatabase实例,才能创建出表
         */
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        /*
         * db.execSQL("insert into student(name,age,score)values(?,?,?)", new
         * Object[] { stu.getName(), stu.getAge(), stu.getScore() });
         */
        ContentValues values = new ContentValues();
        values.put("name", stu.getName());
        values.put("age", stu.getAge());
        values.put("score", stu.getScore());
        // insert into student() values()long id = db.insert("student", null, values);// 返回的是记录的id
        Log.i("add", id+"");
        return id;
    }

    /**
     * 删除一个学生
     * 
     * @param _id
     * @return*/publicint delStudent(int _id) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        // db.execSQL("delete from student where _id=?", new Object[] { _id });int rows = db.delete("student", "_id=?", new String[] { _id + "" });// 返回影响的行数return rows;
    }

    /**
     * 更新一个学生信息
     * 
     * @param stu
     * @return*/publicint updateStudent(Student stu) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        /*
         * db.execSQL( "update student set name=?,age=?,score=? where _id=?",
         * new Object[] { stu.getName(), stu.getAge(), stu.getScore(),
         * stu.get_id() });
         */
        ContentValues values = new ContentValues();
        values.put("name", stu.getName());
        values.put("age", stu.getAge());
        values.put("score", stu.getScore());
        int rows = db.update("student", values, "_id=?",
                new String[] { stu.get_id() + "" });
        return rows;
    }

    /**
     * 得到所有的学生
     * 
     * @return*/public List<Student> getAllStudents() {
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        List<Student> stuList = new ArrayList<Student>();
        // 返回的是游标/*
         * Cursor cursor = db.rawQuery("select _id,name,age,score from student",
         * null);
         */
        Cursor cursor = db.query("student", new String[] { "_id", "name",
                "age", "score" }, null, null, null, null, null);
        while (cursor.moveToNext()) {
            int _id = cursor.getInt(cursor.getColumnIndex("_id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            int age = cursor.getInt(cursor.getColumnIndex("age"));
            int score = cursor.getInt(cursor.getColumnIndex("score"));
            stuList.add(new Student(_id, name, age, score));

        }
        return stuList;
    }

    /**
     * 根据学号查询一个学生
     * 
     * @param _id
     * @return*/public Student getStudentById(int _id) {
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        Student stu = null;
        // 返回的是游标/*
         * Cursor cursor = db.rawQuery(
         * "select _id,name,age,score from student where _id=?", new String[] {
         * _id + "" });
         */

        Cursor cursor = db.query("student", new String[] { "_id", "name", "age", "score" },
                "_id=?", new String[] { _id + "" }, null, null, null);
        if (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("_id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            int age = cursor.getInt(cursor.getColumnIndex("age"));
            int score = cursor.getInt(cursor.getColumnIndex("score"));
            stu = new Student(id, name, age, score);

        }
        return stu;
    }

}
            package
             com.example.sqlitedatabase;

            import
             android.content.Context;

            import
             android.database.Cursor;

            import
             android.database.sqlite.SQLiteDatabase;

            public
            class
             UserService {
    
            private DBHelper helper=null;
    public UserService(Context context) {
        helper = new DBHelper(context);
    }
    /**
     * 用户登录
     * 参数为用户名和密码,在activity从editTEXT中获得
     * @param username
     * @param password
     * @return*/publicboolean Login(String username, String password) {
        SQLiteDatabase sqLiteDatabase = helper.getReadableDatabase();
        String sql = "select * from user where username = ? and password = ? ";
        Cursor rawQuery = sqLiteDatabase.rawQuery(sql, new String[] { username,
                password });
        if (rawQuery.moveToFirst() == true) {
            rawQuery.close();
            returntrue;
        }
        returnfalse;
    } 
     publicboolean Register(String username,String password){
         SQLiteDatabase sqLiteDatabase = helper.getReadableDatabase();
         sqLiteDatabase.execSQL("insert into user(username,password)values(?,?)", new
                  Object[] { username, password});     
        returntrue;
         
     }  
     
    
    
    
    
}
            <
            RelativeLayout 
            xmlns:android
            ="http://schemas.android.com/apk/res/android"
            
    xmlns:tools
            ="http://schemas.android.com/tools"
            
    android:layout_width
            ="match_parent"
            
    android:layout_height
            ="match_parent"
            
    tools:context
            =".MainActivity"
            >
            <
            EditText
        
            android:id
            ="@+id/et_name"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_alignParentRight
            ="true"
            
        android:layout_alignParentTop
            ="true"
            
        android:ems
            ="10"
            
        android:hint
            ="请输入名字"
            >
            <
            requestFocus 
            />
            </
            EditText
            >
            <
            EditText
        
            android:id
            ="@+id/et_age"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_alignParentRight
            ="true"
            
        android:layout_below
            ="@+id/et_name"
            
        android:ems
            ="10"
            
        android:hint
            ="请输入年龄(18-100)"
            />
            <
            EditText
        
            android:id
            ="@+id/et_score"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_alignParentRight
            ="true"
            
        android:layout_below
            ="@+id/et_age"
            
        android:ems
            ="10"
            
        android:hint
            ="请输入分数(数值类型)"
            />
            <
            Button
        
            android:id
            ="@+id/bt_add"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_below
            ="@+id/et_score"
            
        android:text
            ="添加"
            />
            <
            Button
        
            android:id
            ="@+id/bt_del"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignBaseline
            ="@+id/bt_add"
            
        android:layout_alignBottom
            ="@+id/bt_add"
            
        android:layout_toRightOf
            ="@+id/bt_add"
            
        android:text
            ="删除"
            />
            <
            Button
        
            android:id
            ="@+id/bt_update"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignBaseline
            ="@+id/bt_del"
            
        android:layout_alignBottom
            ="@+id/bt_del"
            
        android:layout_toRightOf
            ="@+id/bt_del"
            
        android:text
            ="更新"
            />
            <
            Button
        
            android:id
            ="@+id/bt_query"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_below
            ="@+id/et_score"
            
        android:layout_toRightOf
            ="@+id/bt_update"
            
        android:text
            ="查询"
            />
            <
            Button
        
            android:id
            ="@+id/bt_all"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignBaseline
            ="@+id/bt_query"
            
        android:layout_alignBottom
            ="@+id/bt_query"
            
        android:layout_alignParentRight
            ="true"
            
        android:text
            ="全部"
            />
            <
            EditText
        
            android:id
            ="@+id/et_query"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_alignParentRight
            ="true"
            
        android:layout_below
            ="@+id/bt_add"
            
        android:ems
            ="10"
            
        android:hint
            ="请输入查询的(整数值)"
            />
            <
            ListView
        
            android:id
            ="@+id/listView1"
            
        android:layout_width
            ="match_parent"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_below
            ="@+id/et_query"
            >
            </
            ListView
            >
            </
            RelativeLayout
            >
        

 

item:

            <?
            xml version="1.0" encoding="utf-8"
            ?>
            <
            LinearLayout 
            xmlns:android
            ="http://schemas.android.com/apk/res/android"
            
    android:layout_width
            ="match_parent"
            
    android:layout_height
            ="match_parent"
            
    android:orientation
            ="vertical"
            >
            <
            TextView
        
            android:id
            ="@+id/tv_item"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:text
            ="TextView"
            />
            </
            LinearLayout
            >
        

 

login

            <?
            xml version="1.0" encoding="utf-8"
            ?>
            <
            RelativeLayout 
            xmlns:android
            ="http://schemas.android.com/apk/res/android"
            
    android:layout_width
            ="match_parent"
            
    android:layout_height
            ="match_parent"
            >
            <
            Button
        
            android:id
            ="@+id/bt_log"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_centerVertical
            ="true"
            
        android:layout_toLeftOf
            ="@+id/bt_reg"
            
        android:text
            ="登陆"
            />
            <
            Button
        
            android:id
            ="@+id/bt_reg"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_centerHorizontal
            ="true"
            
        android:layout_centerVertical
            ="true"
            
        android:text
            ="注册"
            />
            <
            TextView
        
            android:id
            ="@+id/tv_psw"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_above
            ="@+id/bt_log"
            
        android:layout_marginBottom
            ="36dp"
            
        android:layout_toLeftOf
            ="@+id/bt_log"
            
        android:text
            ="密码"
            />
            <
            EditText
        
            android:id
            ="@+id/et_password"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignBaseline
            ="@+id/tv_psw"
            
        android:layout_alignBottom
            ="@+id/tv_psw"
            
        android:layout_alignLeft
            ="@+id/bt_log"
            
        android:hint
            ="请输入密码"
            
        android:ems
            ="10"
            />
            <
            EditText
        
            android:id
            ="@+id/et_username"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentTop
            ="true"
            
        android:layout_marginTop
            ="52dp"
            
        android:layout_toRightOf
            ="@+id/tv_username"
            
        android:hint
            ="请输入用户名"
            
        android:ems
            ="10"
            >
            <
            requestFocus 
            />
            </
            EditText
            >
            <
            TextView
        
            android:id
            ="@+id/tv_username"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignBaseline
            ="@+id/et_username"
            
        android:layout_alignBottom
            ="@+id/et_username"
            
        android:layout_alignRight
            ="@+id/tv_psw"
            
        android:text
            ="用户名"
            />
            </
            RelativeLayout
            >
        

register:

            <?
            xml version="1.0" encoding="utf-8"
            ?>
            <
            RelativeLayout 
            xmlns:android
            ="http://schemas.android.com/apk/res/android"
            
    android:layout_width
            ="match_parent"
            
    android:layout_height
            ="match_parent"
            >
            <
            Button
        
            android:id
            ="@+id/reg_button"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_alignParentTop
            ="true"
            
        android:layout_marginLeft
            ="101dp"
            
        android:layout_marginTop
            ="177dp"
            
        android:text
            ="注册"
            />
            <
            TextView
        
            android:id
            ="@+id/textView1"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_alignParentTop
            ="true"
            
        android:layout_marginTop
            ="32dp"
            
        android:text
            ="用户名"
            />
            <
            TextView
        
            android:id
            ="@+id/textView2"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignParentLeft
            ="true"
            
        android:layout_below
            ="@+id/textView1"
            
        android:layout_marginTop
            ="28dp"
            
        android:text
            ="密码"
            />
            <
            EditText
        
            android:id
            ="@+id/et_regname"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignBaseline
            ="@+id/textView1"
            
        android:layout_alignBottom
            ="@+id/textView1"
            
        android:layout_marginLeft
            ="24dp"
            
        android:layout_toRightOf
            ="@+id/textView1"
            
        android:ems
            ="10"
            
        android:hint
            ="请注册您的用户名"
            
        android:inputType
            ="textPersonName"
            />
            <
            EditText
        
            android:id
            ="@+id/et_regpsw"
            
        android:layout_width
            ="wrap_content"
            
        android:layout_height
            ="wrap_content"
            
        android:layout_alignBaseline
            ="@+id/textView2"
            
        android:layout_alignBottom
            ="@+id/textView2"
            
        android:layout_alignLeft
            ="@+id/et_regname"
            
        android:ems
            ="10"
            
        android:hint
            ="请注册您的密码"
            
        android:inputType
            ="textPassword"
            >
            <
            requestFocus 
            />
            </
            EditText
            >
            </
            RelativeLayout
            >
        

 

 

以上就是整个项目的代码,整个流程是在Helper类里连接数据库,然后通过构造方法把参数传递,在逻辑层(增删改查,登陆注册方法sql语句)实例化helper打开数据库,再在Acitivity层做判断,实现button监听,以及Adapter的构造,Listview的刷新,Acitivity之间通过Intent切换,采用的是不带内容参数的传递,只需要界面切换即可,项目中还有一些细节没有进一步处理,基本的bug已解决,如输入的id为空或者不存在,根据id查询会Toast提醒没有此用户,还有一些细节感兴趣的朋友可以自己进行维护,谢谢大家。

原文:http://www.cnblogs.com/zhengyu940115/p/5348845.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!