




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 用户登陆界面2. 用户注册界面3. 查找学生信息并对学生进行操作4. 添加用户界面5. 用户管理界面二、源代码1. LoginActivity.javapackage org.liming.stumanage;public class LoginActivity extends Activity implements OnClickListener private EditText login_uname, login_pwd;private SQLiteOpenHelper helper;private SQLiteDatabase db;private Intent intent;private ListPopupWindow lpw;private List namelist;private TextView autoname;private Cursor cursor;/ 生成一个DES算法的密匙/public static SecretKey key = CryptTest.createSecretKey(DES);Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.login_main);helper = new MyDbHelper(this);namelist = new ArrayList();/ 获取账号、密码的组件login_uname = (EditText) findViewById(R.id.login_uname);login_pwd = (EditText) findViewById(R.id.login_pwd);login_uname.setOnClickListener(this);getNameList();/* * 从userloginfo表中获取用户登录列表 */private void getNameList() db = helper.getReadableDatabase();cursor = db.rawQuery(select distinct _name from userloginfo, null);if (cursor.getCount() != 0) while (cursor.moveToNext() namelist.add(cursor.getString(cursor.getColumnIndex(_name);adapter.notifyDataSetChanged();/* * 处理login页面的注册、登录、退出事件 * * param v */public void loginBtnClick(View v) switch (v.getId() case R.id.login_btn_regist:intent = new Intent(LoginActivity.this, RegistActivity.class);startActivity(intent);break;case R.id.login_btn_login:String name = login_uname.getText().toString().trim();String pwd = login_pwd.getText().toString().trim();String str = null;if (TextUtils.isEmpty(name) | TextUtils.isEmpty(pwd) MyToast.viewToast(this, 账号或者密码不能为空!); else / 使用密匙加密/String strname = CryptTest.encryptToDES(key, name);/ 查询用户db = helper.getReadableDatabase();Cursor cursor = db.rawQuery(select * from userinfo where _name=? limit 1,new String name );if (cursor.getCount() = 0) / 账号不存在MyToast.viewToast(this, 账号不存在!); else cursor.moveToNext();str = cursor.getString(cursor.getColumnIndex(_pwd);/ 使用密匙解密/String strpwd = CryptTest.decryptByDES(key, str);cursor.close();db.close();if (pwd.equals(str) / 账号、密码正确MyToast.viewToast(this, 登陆成功!);/ 将登录成功的用户名记录在userloginfo表中db = helper.getWritableDatabase();ContentValues values = new ContentValues();values.put(_name, name);values.put(_logintime, new Date().getTime() + );db.insert(userloginfo, null, values);db.close();intent = new Intent(LoginActivity.this,StuManageActivity.class);/ 跳转到学生管理界面intent.putExtra(uname, name);startActivity(intent);finish(); else MyToast.viewToast(this, 密码错误!);break;case R.id.login_btn_exit:finish();break;default:break;BaseAdapter adapter = new BaseAdapter() Overridepublic View getView(int position, View convertView, ViewGroup parent) convertView = getLayoutInflater().inflate(R.item, null);autoname = (TextView) convertView.findViewById(R.id.autoname);autoname.setText(namelist.get(position);return convertView;Overridepublic long getItemId(int position) return 0;Overridepublic Object getItem(int position) return null;Overridepublic int getCount() return namelist.size();/* * 智能显示用户名弹窗 */Overridepublic void onClick(View v) lpw = new ListPopupWindow(LoginActivity.this);lpw.setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView parent, View view,int position, long id) selectOpt(view);lpw.dismiss(););lpw.setAdapter(adapter);lpw.setAnchorView(login_uname);lpw.setWidth(200);lpw.show();/* * 动态获取点击的用户名 * param view */private void selectOpt(View view) login_uname.setText(TextView) view).getText();2. RegistActivity.javapackage org.liming.stumanage;public class RegistActivity extends Activity private EditText regist_uname, regist_pwd, regist_rpwd;private SQLiteOpenHelper helper;private SQLiteDatabase db;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.regist);helper = new MyDbHelper(this);regist_uname = (EditText) findViewById(R.id.regist_uname);regist_pwd = (EditText) findViewById(R.id.regist_pwd);regist_rpwd = (EditText) findViewById(R.id.regist_rpwd);/* * 处理注册页面的按钮事件 * * param v */public void registBtnClick(View v) switch (v.getId() case R.id.regist_btn_yes:String name = regist_uname.getText().toString().trim();String pwd = regist_pwd.getText().toString().trim();String rpwd = regist_rpwd.getText().toString().trim();if (TextUtils.isEmpty(name) | TextUtils.isEmpty(pwd)| TextUtils.isEmpty(rpwd) MyToast.viewToast(this, 账号、密码或确认密码不能为空!); else if (!pwd.equals(rpwd) MyToast.viewToast(this, 密码和确认密码必须相同!); else db = helper.getReadableDatabase();Cursor cursor = db.rawQuery(select * from userinfo where _name=? limit 1,new String name );if (cursor.getCount() 0) / 账号已存在MyToast.viewToast(this, 账号已存在!); else db = helper.getWritableDatabase();ContentValues values = new ContentValues();values.put(_name, name);values.put(_pwd, pwd);long count = db.insert(userinfo, null, values);if (count = -1) MyToast.viewToast(this, 用户注册失败!); else MyToast.viewToast(this, 用户注册成功!);finish();db.close();break;case R.id.regist_btn_no:finish();break;default:break;3. StuManageActivity.javapackage org.liming.stumanage;public class StuManageActivity extends Activity implements OnClickListener,OnItemClickListener, OnCheckedChangeListener private ActionBar actionBar;private ListPopupWindow lpw;private EditText search_edit;private ImageButton search_btn;private ImageView opt_menu;private SimpleAdapter adapter;private SQLiteOpenHelper helper;private SQLiteDatabase db;private ListView stu_lv;private List stulist = new ArrayList();private boolean flag = false;private CheckBox stu_check_all, stu_check;private TextView stu_item_name, stu_item_stuno;private Intent intent;private ImageView stu_item_phone, stu_item_mess;/ 打电话,发短息private String stuname, stuno, phone;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.stu_manage);actionBar = getActionBar();actionBar.setDisplayShowHomeEnabled(false);actionBar.setHomeButtonEnabled(false);actionBar.setDisplayShowTitleEnabled(false);actionBar.show();helper = new MyDbHelper(this);stu_lv = (ListView) findViewById(R.id.stu_lv);stu_check_all = (CheckBox) findViewById(R.id.stu_check_all);adapter = new SimpleAdapter(StuManageActivity.this, getData(),R.layout.stu_opt, new String img, info , new int R.id.opt_img, R.id.opt_info );stu_lv.setAdapter(listAdapter);stu_lv.setOnItemClickListener(this);stu_check_all.setOnCheckedChangeListener(this);BaseAdapter listAdapter = new BaseAdapter() Overridepublic View getView(final int position, View convertView,ViewGroup parent) convertView = getLayoutInflater().inflate(R.layout.stu_item, null);stu_item_name = (TextView) convertView.findViewById(R.id.stu_item_name);stu_item_stuno = (TextView) convertView.findViewById(R.id.stu_item_stuno);stu_item_phone = (ImageView) convertView.findViewById(R.id.stu_item_phone);stu_item_mess = (ImageView) convertView.findViewById(R.id.stu_item_mess);stu_check = (CheckBox) convertView.findViewById(R.id.stu_check);if (flag) / 表示查到了记录stu_check.setChecked(stulist.get(position).getStatu();stu_item_name.setText(stulist.get(position).getName();stu_item_stuno.setText(stulist.get(position).getStuno();stu_check.setOnCheckedChangeListener(new OnCheckedChangeListener() Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) stulist.get(position).setStatu(isChecked););stu_item_phone.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) intent = new Intent(Intent.ACTION_CALL, Uri.parse(tel:+ stulist.get(position).getPhone();startActivity(intent););return convertView;Overridepublic long getItemId(int position) return 0;Overridepublic Object getItem(int position) return null;Overridepublic int getCount() return stulist.size();private ListMap getData() ListMap list = new ArrayListMap();Map map = new HashMap();map.put(info, 增加);map.put(img, R.drawable.add);list.add(map);map = new HashMap();map.put(info, 导入);map.put(img, R.drawable.daoru);list.add(map);map = new HashMap();map.put(info, 删除);map.put(img, R.drawable.delete);list.add(map);map = new HashMap();map.put(info, 刷新);map.put(img, R.drawable.refresh);list.add(map);map = new HashMap();map.put(info, 管理用户);map.put(img, R.drawable.user);list.add(map);map = new HashMap();map.put(info, 群发消息);map.put(img, R.drawable.message);list.add(map);return list;Comparator comparatorAsc = new Comparator() / 按学号增序排序Overridepublic int compare(StuInfo lhs, StuInfo rhs) return Integer.parseInt(lhs.getStuno()- Integer.parseInt(rhs.getStuno();Overridepublic void onClick(View v) switch (v.getId() case R.id.opt_menu:lpw = new ListPopupWindow(StuManageActivity.this);lpw.setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView parent, View view,int position, long id) selectOpt(position);lpw.dismiss(););lpw.setAdapter(adapter);lpw.setAnchorView(opt_menu);lpw.setWidth(200);lpw.show();break;case R.id.search_btn:/ 搜索String name = search_edit.getText().toString().trim();if (TextUtils.isEmpty(name) / 显示全部学生stulist.clear();listAdapter.notifyDataSetChanged();/ 清空列表db = helper.getReadableDatabase();Cursor cursor = db.rawQuery(select * from stuinfo , null);if (cursor.getCount() = 0) / 该学生不存在MyToast.viewToast(this, 没有学生信息,请添加学生!); else stulist.clear();listAdapter.notifyDataSetChanged();/ 清空列表db = helper.getReadableDatabase();Cursor curs = db.rawQuery(select * from stuinfo where _name like ? ,new String % + name + % );/ 模糊查询if (curs.getCount() = 0) / 该学生不存在MyToast.viewToast(this, 该学生不存在!); else while (curs.moveToNext() flag = true;stuname = curs.getString(curs.getColumnIndex(_name);stuno = curs.getString(curs.getColumnIndex(_stuno);phone = curs.getString(curs.getColumnIndex(_phone);stulist.add(new StuInfo(stuname, stuno, false, phone);Collections.sort(stulist, comparatorAsc);listAdapter.notifyDataSetChanged();MyToast.viewToast(this, 列表已更新!);curs.close();db.close();break;default:break;List dellist = new ArrayList();/ 删除列表List messagelist = new ArrayList();/ 群发列表StringBuffer sb = new StringBuffer();String phonelist;/ 联系人电话private void selectOpt(int position) switch (position) case 0:/ 新增intent = new Intent(StuManageActivity.this,AddStuInfoActivity.class);startActivity(intent);break;case 1:/ 导入学生File file = new File(Environment.getExternalStorageDirectory().getPath() + /student.json);StringBuffer strb = new StringBuffer();String temp;try BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file);while (temp = br.readLine() != null) strb.append(temp);br.close(); catch (Exception e) e.printStackTrace();try JSONObject json = new JSONObject(strb.toString();JSONArray stusjson = json.getJSONArray(students);for (int i = 0; i 0) for (int i = 0; i 0) for (String str : dellist) db = helper.getWritableDatabase();db.delete(stuinfo, _stuno=?, new String str );MyToast.viewToast(this, 删除成功!);dellist.clear(); else MyToast.viewToast(this, 请勾选要删除的项目!);listAdapter.notifyDataSetChanged();break;case 3:/ 刷新listAdapter.notifyDataSetChanged();break;case 4:/ 管理用户intent = getIntent();String name = intent.getStringExtra(uname);if (!name.equals(username) MyToast.viewToast(this, 呵呵,你的权限似乎不够哦!); else / 跳转到用户管理界面intent = new Intent(StuManageActivity.this,UserManageActivity.class);startActivity(intent);break;default:break;/* * 监听stu_lv的点击事件,跳到个人信息页面 */Overridepublic void onItemClick(AdapterView parent, View view, int position,long id) MyToast.viewToast(this, 点击了 + position);intent = new Intent(StuManageActivity.this, StuInfoActivity.class);intent.putExtra(stuno, stulist.get(position).getStuno();/ 把学号传过去startActivity(intent);/* * 监听全选按钮 */Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) for (StuInfo stu : stulist) stu.setStatu(isChecked);listAdapter.notifyDataSetChanged();4. UserManageActivity.javapackage org.liming.stumanage;public class UserManageActivity extends Activity implementsOnCheckedChangeListener, OnClickListener, OnItemLongClickListener private ListView user_lv;private CheckBox user_check_all, user_check;private List userlist;private TextView user_item_name, user_item_pwd;private SQLiteOpenHelper helper;private SQLiteDatabase db;private boolean flag = false;private Button user_btn_del, user_btn_cancel;private Cursor cursor;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.user_manage);helper = new MyDbHelper(this);userlist = new ArrayList();initUserList();/ 加载用户信息列表user_check_all = (CheckBox) findViewById(R.id.user_check_all);user_btn_del = (Button) findViewById(R.id.user_btn_del);user_btn_cancel = (Button) findViewById(R.id.user_btn_cancel);user_lv = (ListView) findViewById(R.id.user_lv);user_lv.setAdapter(listAdapter);user_lv.setOnItemLongClickListener(this);user_check_all.setOnCheckedChangeListener(this);user_btn_del.setOnClickListener(this);user_btn_cancel.setOnClickListener(this);BaseAdapter listAdapter = new BaseAdapter() Overridepublic View getView(final int position, View convertView,ViewGroup parent) convertView = getLayoutInflater().inflate(R.layout.user_item, null);user_item_name = (TextView) convertView.findViewById(R.id.user_item_name);user_item_pwd = (TextView) convertView.findViewById(R.id.user_item_pwd);user_check = (CheckBox) convertView.findViewById(R.id.user_check);if (flag) user_check.setChecked(userlist.get(position).getStatu();user_item_name.setText(userlist.get(position).getName();user_item_pwd.setText(userlist.get(position).getPwd();user_check.setOnCheckedChangeListener(new OnCheckedChangeListener() Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) userlist.get(position).setStatu(isChecked););return convertView;Overridepublic long getItemId(int position) return 0;Overridepublic Object getItem(int position) return null
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭安全消防培训课件
- 家庭安全培训pdf课件
- 安全培训的想法课件
- 2025年主管护师(中级)练习题附完整答案详解【各地真题】
- 2025年护士节知识竞赛考试试题完整及答案
- 2025年消毒技能竞赛个人竞赛试题(附答案)
- 汽车驾驶员培训试题及答案
- 2025货运资格证试题及答案
- 生物安全培训考试试卷及答案
- 2025年手术室护理实践指南知识考核试题(带答案)
- 摄像机原理与使用教程
- 饮料风味设计与感官评价研究
- 初中语文现代文阅读理解(含参考答案)
- 人教版四年级上册音乐全册教案
- 招标采购业务培训课件
- 单片机应用课程设计基于电子时钟的设计报告参考模板样本
- 急诊科建设与设备配置标准
- 小学武术社团教学计划
- 中科院2022年物理化学(甲)考研真题(含答案)
- 系统规划与管理师教程
- 汉字五千年解说词完整版内容
评论
0/150
提交评论