【Android】eclipse 实现登录、注册、修改密码、数据库操作 您所在的位置:网站首页 怎么用eclipse写安卓 【Android】eclipse 实现登录、注册、修改密码、数据库操作

【Android】eclipse 实现登录、注册、修改密码、数据库操作

2023-08-04 22:25| 来源: 网络整理| 查看: 265

该项目参考:https://blog.csdn.net/midnight_time/article/details/91203973

目录

登录、注册、修改密码功能的实现

一、UI的设计

        二、实现功能部分,Java文件

登录、注册、修改密码功能的实现 一、UI的设计

1.主界面的布局文件

 

 main.xml文件代码如下所示:

 2.修改密码的布局文件

forget.xml文件代码如下所示: 

 3.注册页面布局文件

 register.xml文件代码如下所示:

 

 4.版权信息声明

 info.xml文件代码如下:

 5.登录之后的主界面布局文件

 login.xml代码文件如下:

 6.查看校园图片布局文件

 aka.xml文件代码如下

 7.查看信息布局文件

 second.xml文件代码如下

 这边需要创建一个item.xml文件用来后续将数据库里的数据信息传导到second.xml页面上

item.xml文件代码如下

 8.增加信息布局文件

 add.xml 代码文件如下所示

"

9.删除信息的布局文件

 delete.xml 文件代码如下所示

 10.修改信息布局文件

update.xml文件代码如下所示

 11.查询信息布局文件

find.xml文件代码如下所示

 二、实现功能部分,Java文件

1.登录模块有三个小型数据库,分别是MyDBHelper.java、Code.java(验证码数据库)、LoginService.java(记住密码存储实现)

 MyDBHelper.java文件代码如下所示

package com.example.fitskate.dao; import java.util.ArrayList; import com.example.fitskate.po.User; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MyDBHelper extends SQLiteOpenHelper{ private SQLiteDatabase db; public MyDBHelper(Context context){ super(context,"db_fitskate_user",null,1); db = getReadableDatabase(); } @Override public void onCreate(SQLiteDatabase db){ String sql = "create table user(id integer primary key autoincrement,name varchar(20),password varchar(20))"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ db.execSQL("DROP TABLE IF EXISTS user"); onCreate(db); } public void add(String name,String password){ db.execSQL("INSERT INTO user (name,password) VALUES(?,?)",new Object[]{name,password}); } public void delete(String name,String password){ db.execSQL("DELETE FROM user WHERE name = AND password ="+name+password); } public void updata(String password){ db.execSQL("UPDATE user SET password = ?",new Object[]{password}); } public ArrayList getAllData(){ ArrayList list = new ArrayList(); Cursor cursor = db.query("user",null,null,null,null,null,"name DESC"); while(cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); String password = cursor.getString(cursor.getColumnIndex("password")); list.add(new User(name,password)); } cursor.close(); return list; } }

Code .java文件代码如下所示

package com.example.fitskate.dao; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import java.util.Random; /** * Created by littlecurl 2018/6/24 */ public class Code { /** * 随机数数组 * 去除了易混淆的 数字 0 和 字母 o O * 数字 1 和 字母 i I l L * 数字 6 和 字母 b * 数字 9 和 字母 q * 字母 c C 和 G * 字母 t (经常和随机线混在一起看不清) */ private static final char[] CHARS = { '2', '3', '4', '5', '7', '8', 'a', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'r', 's', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'D', 'E', 'F', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; private static Code bmpCode; public static Code getInstance() { if(bmpCode == null) bmpCode = new Code(); return bmpCode; } //default settings //验证码默认随机数的个数 private static final int DEFAULT_CODE_LENGTH = 4; //默认字体大小 private static final int DEFAULT_FONT_SIZE = 25; //默认线条的条数 private static final int DEFAULT_LINE_NUMBER = 5; //padding值 private static final int BASE_PADDING_LEFT = 10, RANGE_PADDING_LEFT = 15, BASE_PADDING_TOP = 15, RANGE_PADDING_TOP = 20; //验证码的默认宽高 private static final int DEFAULT_WIDTH = 100, DEFAULT_HEIGHT = 40; //settings decided by the layout xml //canvas width and height private int width = DEFAULT_WIDTH, height = DEFAULT_HEIGHT; //random word space and pading_top private int base_padding_left = BASE_PADDING_LEFT, range_padding_left = RANGE_PADDING_LEFT, base_padding_top = BASE_PADDING_TOP, range_padding_top = RANGE_PADDING_TOP; //number of chars, lines; font size private int codeLength = DEFAULT_CODE_LENGTH, line_number = DEFAULT_LINE_NUMBER, font_size = DEFAULT_FONT_SIZE; //variables private String code; private int padding_left, padding_top; private Random random = new Random(); //验证码图片 public Bitmap createBitmap() { padding_left = 0; Bitmap bp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bp); code = createCode(); c.drawColor(Color.WHITE); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setTextSize(font_size); //画验证码 for (int i = 0; i < code.length(); i++) { randomTextStyle(paint); randomPadding(); c.drawText(code.charAt(i) + "", padding_left, padding_top, paint); } //画线条 for (int i = 0; i < line_number; i++) { drawLine(c, paint); } // c.save( Canvas.ALL_SAVE_FLAG );//保存 c.save();//保存 c.restore();// return bp; } public String getCode() { return code; } //生成验证码 private String createCode() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < codeLength; i++) { buffer.append(CHARS[random.nextInt(CHARS.length)]); } return buffer.toString(); } //画干扰线 private void drawLine(Canvas canvas, Paint paint) { int color = randomColor(); int startX = random.nextInt(width); int startY = random.nextInt(height); int stopX = random.nextInt(width); int stopY = random.nextInt(height); paint.setStrokeWidth(1); paint.setColor(color); canvas.drawLine(startX, startY, stopX, stopY, paint); } //生成随机颜色 private int randomColor() { return randomColor(1); } private int randomColor(int rate) { int red = random.nextInt(256) / rate; int green = random.nextInt(256) / rate; int blue = random.nextInt(256) / rate; return Color.rgb(red, green, blue); } //随机生成文字样式,颜色,粗细,倾斜度 private void randomTextStyle(Paint paint) { int color = randomColor(); paint.setColor(color); paint.setFakeBoldText(random.nextBoolean()); //true为粗体,false为非粗体 float skewX = random.nextInt(11) / 10; skewX = random.nextBoolean() ? skewX : -skewX; paint.setTextSkewX(skewX); //float类型参数,负数表示右斜,整数左斜 //paint.setUnderlineText(true); //true为下划线,false为非下划线 //paint.setStrikeThruText(true); //true为删除线,false为非删除线 } //随机生成padding值 private void randomPadding() { padding_left += base_padding_left + random.nextInt(range_padding_left); padding_top = base_padding_top + random.nextInt(range_padding_top); } }

 LoginService.java代码如下所示

package com.example.loginUI.service; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.util.HashMap; import android.content.Context; import android.widget.Toast; public class LoginService { public static boolean saveInfo(Context context, String name, String password){ //getFileDir :/date/date/包名/files //getCacheDir :/data/data/包名/cache File file = new File(context.getFilesDir(),"info.txt"); try { FileOutputStream fos = new FileOutputStream(file); fos.write((name + "=" + password).getBytes()); fos.flush(); fos.close(); return true; }catch(Exception e){ //在命令行打印异常信息在程序中出错的位置及原因 e.printStackTrace(); return false; } } public static HashMap getInfo(Context context){ File file = new File(context.getFilesDir(),"info.txt"); try{ FileInputStream fis = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String[] result = br.readLine().split("="); HashMap map = new HashMap(); map.put("name", result[0]); map.put("password", result[1]); br.close(); return map; }catch (Exception e){ Toast.makeText(context, "无法读取用户信息", 0).show(); } return null; } }

2.登录模块的bean类

User.java文件代码如下所示

package com.example.fitskate.po; public class User { private String name; //用户 private String password; //密码 public User(String name, String password) { this.name = name; this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", password='" + password + '\'' + '}'; } }

3.登录模块的功能实现

与main.xml布局文件相关联的MainActivity.java代码如下所示(主页面)

package com.example.fitskate.db; import java.util.ArrayList; import java.util.HashMap; import com.example.fitskate.dao.MyDBHelper; import com.example.fitskate.po.User; import com.example.loginUI.service.LoginService; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.text.TextUtils; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity implements View.OnClickListener{ private MyDBHelper myhelper; private EditText loginname; private EditText loginpassword; private CheckBox cbIsRemeber; private Button forget; private Button login; private Button register; private Button quit; private Button hzc; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initivew(); myhelper = new MyDBHelper(this); } private void initivew() { loginname = (EditText) findViewById(R.id.et_loginusername); loginpassword = (EditText) findViewById(R.id.et_loginpassword); cbIsRemeber = (CheckBox) findViewById(R.id.checkbox_text); forget = (Button) findViewById(R.id.forget_btn); login = (Button) findViewById(R.id.login_btn); register = (Button) findViewById(R.id.loginregister_btn); quit = (Button) findViewById(R.id.quit_btn); hzc = (Button) findViewById(R.id.hzc_btn); HashMap info = LoginService.getInfo(this); if(info != null){ loginname.setText(info.get("name")); loginpassword.setText(info.get("password")); } login.setOnClickListener(this); register.setOnClickListener(this); forget.setOnClickListener(this); quit.setOnClickListener(this); hzc.setOnClickListener(this); } @Override public void onClick(View view) { // TODO Auto-generated method stub switch (view.getId()){ //跳转注册 case R.id.loginregister_btn: startActivity(new Intent(this,RegisterActivity.class)); finish(); break; //登录跳转 case R.id.login_btn: String name = loginname.getText().toString().trim(); String password = loginpassword.getText().toString().trim(); if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password)){ ArrayList data = myhelper.getAllData(); boolean match = false; for (int i = 0;i < data.size();i++){ User user = data.get(i); if(name.equals(user.getName())&& password.equals(user.getPassword())){ match = true; break; }else{ match = false; } } if (match){ Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show(); startActivity(new Intent(this, LoginActivity.class)); finish();//销毁此Activity if (cbIsRemeber.isChecked()){ boolean result = LoginService.saveInfo(this, name, password); } }else{ Toast.makeText(this, "用户名或密码不正确,请重新输入", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "请输入你的用户名或密码", Toast.LENGTH_SHORT).show(); } break; case R.id.forget_btn: startActivity(new Intent(this,ForgetActivity.class)); finish(); break; case R.id.hzc_btn: startActivity(new Intent(this,Info.class)); finish(); break; case R.id.quit_btn: Intent home = new Intent (Intent.ACTION_MAIN); home.addCategory(Intent.CATEGORY_HOME); startActivity(home); finish(); } } }

与foget.xml相关联的ForgetActivity.java文件代码如下所示(修改密码)

package com.example.fitskate.db; import java.util.ArrayList; import com.example.fitskate.dao.Code; import com.example.fitskate.dao.MyDBHelper; import com.example.fitskate.po.User; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; public class ForgetActivity extends Activity implements View.OnClickListener{ private EditText forgetname; private EditText forgetpassword1; private EditText forgetpassword2; private EditText VCode; private Button forget; private Button forgetback; private ImageView ShowCode; private String realCode; private MyDBHelper myhelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.forget); initView(); myhelper = new MyDBHelper(this); ShowCode.setImageBitmap(Code.getInstance().createBitmap()); realCode = Code.getInstance().getCode().toLowerCase(); } private void initView() { // TODO Auto-generated method stub forgetname = (EditText) findViewById(R.id.et_forgetname); forgetpassword1 = (EditText) findViewById(R.id.et_forgetpaswd1); forgetpassword2 = (EditText) findViewById(R.id.et_forgetpaswd2); VCode = (EditText) findViewById(R.id.et_vcode); forget = (Button) findViewById(R.id.forget_btn); forgetback = (Button) findViewById(R.id.forgetback_btn); ShowCode = (ImageView) findViewById(R.id.iv_registercode); ShowCode.setOnClickListener((OnClickListener)this); forget.setOnClickListener((OnClickListener)this); forgetback.setOnClickListener((OnClickListener)this); } @Override public void onClick(View view) { // TODO Auto-generated method stub switch (view.getId()){ case R.id.forgetback_btn: Intent intent1 = new Intent(this, MainActivity.class); startActivity(intent1); finish(); break; case R.id.iv_registercode: ShowCode.setImageBitmap(Code.getInstance().createBitmap()); realCode = Code.getInstance().getCode().toLowerCase(); break; case R.id.forget_btn: String name = forgetname.getText().toString().trim(); String password1 = forgetpassword1.getText().toString().trim(); String password = forgetpassword2.getText().toString().trim(); String vCode = VCode.getText().toString().toLowerCase(); if(!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password) && !TextUtils.isEmpty(vCode)){ if(!password1.equals(password)){ ArrayList data = myhelper.getAllData(); boolean match = false; for (int i = 0;i < data.size();i++){ User user = data.get(i); if(name.equals(user.getName())&& password1.equals(user.getPassword())){ match = true; break; }else{ match = false; } } if(match){ if(vCode.equals(realCode)){ myhelper.updata(password); startActivity(new Intent(this, MainActivity.class)); finish(); Toast.makeText(this, "验证通过,修改成功", Toast.LENGTH_SHORT).show(); break; }else{ Toast.makeText(this, "验证码错误,修改失败", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "用户名或密码不正确,请重新输入", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "旧密码和新密码一致,修改失败", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "未完善信息,修改失败", Toast.LENGTH_SHORT).show(); } break; } } }

与register.xml相关联的RegisterActivity.java文件代码如下(注册)

package com.example.fitskate.db; import java.util.ArrayList; import com.example.fitskate.dao.Code; import com.example.fitskate.dao.MyDBHelper; import com.example.fitskate.po.User; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; public class RegisterActivity extends Activity implements View.OnClickListener{ private EditText registername; private EditText registerpassword1; private EditText registerpassword2; private EditText VCode; private Button register; private Button registerback; private ImageView ShowCode; private String realCode; private MyDBHelper myhelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.register); initView(); myhelper = new MyDBHelper(this); ShowCode.setImageBitmap(Code.getInstance().createBitmap()); realCode = Code.getInstance().getCode().toLowerCase(); } private void initView() { // TODO Auto-generated method stub registername = (EditText) findViewById(R.id.et_registername); registerpassword1 = (EditText) findViewById(R.id.et_registerpaswd1); registerpassword2 = (EditText) findViewById(R.id.et_registerpaswd2); VCode = (EditText) findViewById(R.id.et_vcode); register = (Button) findViewById(R.id.register_btn); registerback = (Button) findViewById(R.id.registerback_btn); ShowCode = (ImageView) findViewById(R.id.iv_registercode); ShowCode.setOnClickListener((OnClickListener)this); register.setOnClickListener((OnClickListener)this); registerback.setOnClickListener((OnClickListener)this); } @Override public void onClick(View view) { // TODO Auto-generated method stub switch(view.getId()){ case R.id.registerback_btn: Intent intent1 = new Intent(this, MainActivity.class); startActivity(intent1); finish(); break; case R.id.iv_registercode: ShowCode.setImageBitmap(Code.getInstance().createBitmap()); realCode = Code.getInstance().getCode().toLowerCase(); break; case R.id.register_btn: String name = registername.getText().toString().trim(); String password1 = registerpassword1.getText().toString().trim(); String password = registerpassword2.getText().toString().trim(); String vCode = VCode.getText().toString().toLowerCase(); if(!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password) && !TextUtils.isEmpty(vCode)){ if(password1.equals(password)){ if(vCode.equals(realCode)){ ArrayList data = myhelper.getAllData(); boolean match = true; for (int i = 0;i < data.size();i++){ User user = data.get(i); if(!name.equals(user.getName())){ match = true; }else{ match = false; break; } } if (match){ myhelper.add(name, password1); startActivity(new Intent(this, LoginActivity.class)); finish(); Toast.makeText(this, "验证通过,注册成功", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "用户名已存在,注册失败", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "验证码错误,注册失败", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "两次密码不一致,注册失败", Toast.LENGTH_SHORT).show(); } }else { Toast.makeText(this, "未完善信息,注册失败", Toast.LENGTH_SHORT).show(); } break; } } }

与info.xml相关联的info.java文件代码如所示(版权声明) 

package com.example.fitskate.db; import com.example.student.AddActivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class Info extends Activity{ private Button back; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.info); back = (Button) findViewById(R.id.infoback_btn); back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(Info.this, MainActivity.class); startActivity(intent); finish(); } }); } }

4.登录之后的学生信息查系统功能的实现,学生信息系统模块用到的数据库PersonDao.java、PersonSqliteOpenHelper.java

PersonDao.java文件代码如下所示

package com.example.fitskate.dao; import java.util.ArrayList; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.example.fitskate.po.Person; import com.example.fitskate.dao.PersonSQLiteOpenHelper; public class PersonDao { PersonSQLiteOpenHelper helper = null; public PersonDao(Context context) { super(); this.helper = new PersonSQLiteOpenHelper(context); } public void add(String name, String number) { SQLiteDatabase db = this.helper.getWritableDatabase(); db.execSQL("insert into person(name,number) values(?,?)", new Object[] { name, number }); db.close(); } public ArrayList find(String name) { SQLiteDatabase db = this.helper.getReadableDatabase(); Cursor cursor =db.rawQuery("select * from person", null); boolean result =cursor.moveToNext(); ArrayList persons = new ArrayList(); while (cursor.moveToNext()) { if (name.equals(cursor.getString(cursor.getColumnIndex("name")))){ Person person = new Person(); person.setId(cursor.getInt(cursor.getColumnIndex("id"))); person.setName(cursor.getString(cursor.getColumnIndex("name"))); person.setNumber(cursor.getString(cursor.getColumnIndex("number"))); System.out.println(person); persons.add(person); } } cursor.close(); db.close(); return persons; } public void update(String name, String newNumber) { SQLiteDatabase db = this.helper.getWritableDatabase(); db.execSQL("update person set number=? where name=?", new Object[] { newNumber, name }); db.close(); } public void delete(String name) { SQLiteDatabase db = this.helper.getWritableDatabase(); db.execSQL("delete from person where name=?", new Object[] { name }); db.close(); } public ArrayList findAll() { SQLiteDatabase db = this.helper.getReadableDatabase(); ArrayList persons = new ArrayList(); Cursor cursor = db.rawQuery("select * from person", null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); String number = cursor.getString(cursor.getColumnIndex("number")); Person p = new Person(id, name, number); persons.add(p); } cursor.close(); db.close(); return persons; } }

PersonDao2是备用数据库

package com.example.fitskate.dao; import java.util.ArrayList; import com.example.fitskate.po.Person; import com.example.fitskate.dao.PersonSQLiteOpenHelper; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class PersonDao2 { PersonSQLiteOpenHelper helper = null; public PersonDao2(Context context) { super(); this.helper = new PersonSQLiteOpenHelper(context); } public long add(String name, String number,int money) { SQLiteDatabase db = this.helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("number", number); values.put("account", money); long id = db.insert("person", null, values); db.close(); return id; } public boolean find(String name) { SQLiteDatabase db = this.helper.getReadableDatabase(); Cursor cursor = db.query("person", null, "name=?", new String[] { name }, null, null, null); boolean result = cursor.moveToNext(); cursor.close(); db.close(); return result; } public int update(String name, String newNumber) { SQLiteDatabase db = this.helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("number", newNumber); int number = db.update("person", values, "name=?", new String[] { name }); db.close(); return number; } public int delete(String name) { SQLiteDatabase db = this.helper.getWritableDatabase(); // db.execSQL("delete from person where name=?", new Object[] { name }); int number = db.delete("person", "name=?", new String[] { name }); db.close(); return number; } public ArrayList findAll() { SQLiteDatabase db = this.helper.getReadableDatabase(); ArrayList persons = new ArrayList(); Cursor cursor = db.query("person", null, null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); String number = cursor.getString(cursor.getColumnIndex("number")); Person p = new Person(id, name, number); persons.add(p); } cursor.close(); db.close(); return persons; } public ArrayList find1(String name) { SQLiteDatabase db = this.helper.getReadableDatabase(); Cursor cursor =db.query("person", null, "name=?", new String[]{name}, null, null, null); boolean result =cursor.moveToNext(); ArrayList persons = new ArrayList(); while (cursor.moveToNext()) { Person person = new Person(); person.setId(cursor.getInt(1)); person.setName(cursor.getString(1)); person.setNumber(cursor.getString(2)); System.out.println(person); persons.add(person); } cursor.close(); db.close(); return persons; } }

PersonSqliteOpenHelper.java文件代码如下所示

package com.example.fitskate.dao; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class PersonSQLiteOpenHelper extends SQLiteOpenHelper { private static final String DBFILENAME = "person.db"; private static int db_version = 2; public PersonSQLiteOpenHelper(Context context) { super(context, DBFILENAME, null, db_version); } /** * 当数据库第一次创建时调用 */ @Override public void onCreate(SQLiteDatabase db) { String sql = "create table person(id integer primary key autoincrement,name varchar(20),number varchar(20))"; db.execSQL(sql); } /** * 当数据库的版本号发生增加的时候调用 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("数据库更改!"); String sql = "alter table person add account varchar(20)"; db.execSQL(sql); } }

5.学生信息系统模块的Bean类

Person.java文件代码如下所示

package com.example.fitskate.po; public class Person { private int id; private String name; private String number; public Person() { super(); } public Person(String name) { super(); this.name = name; } public Person(String name, String number) { super(); this.name = name; this.number = number; } public Person(int id, String name, String number) { super(); this.id = id; this.name = name; this.number = number; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", number=" + number + "]"; } }

6.学生信息系统模块的功能实现代码

与login.xml相关联的LoginActivity.java文件代码如下(登录后的主界面)

package com.example.fitskate.db; import com.example.aka.AkaActivity; import com.example.fitskate.dao.MyDBHelper; import com.example.student.AddActivity; import com.example.student.DeleteActivity; import com.example.student.FindActivity; import com.example.student.SecondActivity; import com.example.student.UpdateActivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class LoginActivity extends Activity implements View.OnClickListener{ private Button lookview; private Button view; private Button add; private Button delete; private Button update; private Button find; private Button loginquit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); initivew(); } private void initivew() { // TODO Auto-generated method stub lookview = (Button) findViewById(R.id.btn_lookview); view = (Button) findViewById(R.id.btn_view); add = (Button) findViewById(R.id.btn_add); delete = (Button) findViewById(R.id.btn_delete); update = (Button) findViewById(R.id.btn_update); find = (Button) findViewById(R.id.btn_find); loginquit = (Button) findViewById(R.id.btn_exit); lookview.setOnClickListener(this); view.setOnClickListener(this); add.setOnClickListener(this); delete.setOnClickListener(this); update.setOnClickListener(this); find.setOnClickListener(this); loginquit.setOnClickListener(this); } @Override public void onClick(View view) { // TODO Auto-generated method stub switch (view.getId()){ case R.id.btn_lookview: startActivity(new Intent(this,AkaActivity.class)); finish(); break; case R.id.btn_view: startActivity(new Intent(this,SecondActivity.class)); finish(); break; case R.id.btn_add: startActivity(new Intent(this,AddActivity.class)); finish(); break; case R.id.btn_delete: startActivity(new Intent(this,DeleteActivity.class)); finish(); break; case R.id.btn_update: startActivity(new Intent(this,UpdateActivity.class)); finish(); break; case R.id.btn_find: startActivity(new Intent(this,FindActivity.class)); finish(); break; case R.id.btn_exit: startActivity(new Intent(this,MainActivity.class)); finish(); break; } } }

与add.xml相关联的AddActivity.java文件代码如下(添加新的学生信息)

package com.example.student; import com.example.fitskate.dao.PersonDao; import com.example.fitskate.db.LoginActivity; import com.example.fitskate.db.R; import com.example.fitskate.po.Person; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class AddActivity extends Activity{ private EditText nameET; private EditText numberET; private PersonDao dao; Button Back = null; Button Add = null; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.add); dao = new PersonDao(this); Back = (Button) findViewById(R.id.btn_back); Back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(AddActivity.this, LoginActivity.class); startActivity(intent); finish(); } }); Add = (Button)findViewById(R.id.btn_add); Add.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub EditText nameET=(EditText)findViewById(R.id.et_name); EditText numberET=(EditText)findViewById(R.id.et_number); String name=nameET.getText().toString(); String number=numberET.getText().toString(); if (!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(number)){ ContentValues values = new ContentValues(); values.put("name", name); values.put("number", number); PersonDao dao = new PersonDao(getApplicationContext()); dao.add(name, number); Toast.makeText(AddActivity.this, "添加成功", 0).show(); }else{ Toast.makeText(AddActivity.this, "请完善信息,添加失败", 0).show(); } } }); } }

与delete.xml相关联的DeleteActivity.java文件代码如下所示(删除)

package com.example.student; import com.example.fitskate.db.LoginActivity; import com.example.fitskate.db.R; import com.example.fitskate.dao.PersonDao; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class DeleteActivity extends Activity{ private EditText nameET; private PersonDao dao; Button Delete = null; Button Back = null; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.delete); dao = new PersonDao(this); Back = (Button) findViewById(R.id.btn_back); Back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(DeleteActivity.this, LoginActivity.class); startActivity(intent); finish(); } }); Delete = (Button)findViewById(R.id.btn_delete); Delete.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub EditText nameET=(EditText)findViewById(R.id.et_name); String name=nameET.getText().toString(); ContentValues values = new ContentValues(); values.put("name", name); PersonDao dao = new PersonDao(getApplicationContext()); dao.delete(name); if (TextUtils.isEmpty(name)){ Toast.makeText(DeleteActivity.this, "姓名不能为空", 0).show(); }else{ Toast.makeText(DeleteActivity.this, "删除成功", 0).show(); } } }); } }

与find.xml相关联的FindActivity.java文件代码如下所示(查找)

package com.example.student; import java.util.ArrayList; import com.example.fitskate.dao.PersonDao; import com.example.fitskate.dao.PersonDao2; import com.example.fitskate.db.LoginActivity; import com.example.fitskate.db.R; import com.example.fitskate.po.Person; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class FindActivity extends Activity{ private EditText nameET; private TextView tv; private PersonDao dao; Button Find = null; Button Back = null; Button Findall =null; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.find); dao = new PersonDao(this); Back = (Button) findViewById(R.id.btn_back); Back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(FindActivity.this, LoginActivity.class); startActivity(intent); finish(); } }); Findall = (Button) findViewById(R.id.btn_findall); Findall.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(FindActivity.this, SecondActivity.class); startActivity(intent); } }); Find = (Button)findViewById(R.id.btn_find); final EditText nameET = (EditText)this.findViewById(R.id.et_name); final TextView tv = (TextView)this.findViewById(R.id.display); Find.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String name=nameET.getText().toString(); PersonDao dao = new PersonDao(FindActivity.this); ArrayList persons = dao.find(name); String personstr = ""; for (Person person : persons){ personstr += person.toString(); } tv.setText(personstr); } }); } }

与second.xml相关联的SecondActivity.java文件代码如下所示(回显)

package com.example.student; import java.util.ArrayList; import com.example.fitskate.dao.PersonDao; import com.example.fitskate.db.LoginActivity; import com.example.fitskate.db.R; import com.example.fitskate.po.Person; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class SecondActivity extends Activity { private ArrayList list; private PersonDao dao; private EditText nameET; private EditText numberET; private ListView lv; private MyAdapter adapter; Button Back = null; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.second); showView(); dao = new PersonDao(this); list = dao.findAll(); adapter=new MyAdapter(); lv.setAdapter(adapter); Back=(Button)findViewById(R.id.btn_back); Back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(SecondActivity.this, LoginActivity.class); startActivity(intent); finish(); } }); } private void showView(){ lv=(ListView)findViewById(R.id.lv); nameET = (EditText) findViewById(R.id.et_name); numberET = (EditText)findViewById(R.id.et_number); lv.setOnItemClickListener(new MyOnItemClickListener()); } private class MyAdapter extends BaseAdapter{ public int getCount(){ return list.size(); } public Object getItem(int position){ return list.get( position); } public long getItemId(int position){ return position; } public View getView(int position,View convertView,ViewGroup parent){ View item = convertView!=null?convertView:View.inflate(getApplicationContext(), R.layout.item, null); TextView nameTV=(TextView) item.findViewById(R.id.tv_name); TextView numberTV=(TextView) item.findViewById(R.id.tv_number); final Person a = list.get(position); nameTV.setText(a.getName()); numberTV.setText(a.getNumber()+""); return item; } } private class MyOnItemClickListener implements OnItemClickListener{ public void onItemClick(AdapterView parent,View view,int position,long id){ Person a=(Person) parent.getItemAtPosition(position); Toast.makeText(getApplicationContext(), a.toString(), Toast.LENGTH_SHORT).show(); } } }

与update.xml相关联的UpdateActivity.java文件代码如下所示(修改)

package com.example.student; import com.example.fitskate.dao.PersonDao; import com.example.fitskate.db.LoginActivity; import com.example.fitskate.db.R; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class UpdateActivity extends Activity { private EditText nameET; private EditText numberET; private PersonDao dao; Button Back = null; Button Update = null; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.update); dao = new PersonDao(this); Back = (Button) findViewById(R.id.btn_back); Back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(UpdateActivity.this, LoginActivity.class); startActivity(intent); finish(); } }); Update = (Button) findViewById(R.id.btn_update); Update.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub EditText nameET=(EditText)findViewById(R.id.et_name); EditText numberET=(EditText)findViewById(R.id.et_number); String name=nameET.getText().toString(); String newNumber=numberET.getText().toString(); ContentValues values = new ContentValues(); values.put("name", name); values.put("number", newNumber); PersonDao dao = new PersonDao(getApplicationContext()); dao.update(name, newNumber); if (TextUtils.isEmpty(name)||TextUtils.isEmpty(newNumber)){ Toast.makeText(UpdateActivity.this, "姓名或学号不能为空", 0).show(); }else{ Toast.makeText(UpdateActivity.this, "修改成功", 0).show(); } } }); } }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有