安卓 员工管理系统app
程序员文章站
2022-09-14 14:55:46
员工管理系统、开发工具:Android Studio数据库: sqlite数据库部分源码manifest.xml配置文件
员工管理系统、
开发工具:Android Studio
数据库: sqlite
数据库
部分源码
manifest.xml配置文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.company">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SearchActivity"></activity>
<activity android:name=".GuanliActivity" />
<activity android:name=".GloginActivity" />
<activity android:name=".RegisterActivity" />
<activity android:name=".IntroductionActivity" />
<activity android:name=".NewsActivity" />
<activity android:name=".FirstActivity" />
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
员工界面
package com.example.company;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.text.format.Time;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class FirstActivity extends AppCompatActivity {
private Cursor cursor;
@Override
public void onDestroy(){
super.onDestroy();
cursor.close();
}
//定义共享优先数据及基础字段 用于签到功能实现
private String MY_RMBCost ="MY_RMBCost";
private String TodayTime ="TodayTime";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
//--------------------------------------------------------------登录
Button btnlongin = findViewById(R.id.login);
btnlongin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this,LoginActivity.class);
startActivity(intent);
}
});
//-------------------------------------------------------------签到
final Button bt_qiandao = (Button)findViewById(R.id.bt_qiandao);
final TextView tv_time = (TextView)findViewById(R.id.tv_qiandaotime);
SharedPreferences my_rmb_data = getSharedPreferences(MY_RMBCost, 0);//读取共享数据
Time t = new Time();
t.setToNow();
int lastmonth = t.month + 1 ;
final String str = t.year + "年" + lastmonth + "月" + t.monthDay + "日";
final String nowtime =my_rmb_data.getString(TodayTime, "").toString();
if(nowtime.equals(str)==true)
{
tv_time.setText("日期:"+ nowtime +"已签到!");
bt_qiandao.setBackgroundResource(R.drawable.yqd);
bt_qiandao.setText("✔签到");
}
else
{
tv_time.setText("日期:"+ str);
bt_qiandao.setBackgroundResource(R.drawable.qd);
}
//签到功能
bt_qiandao.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
SharedPreferences my_rmb_data = getSharedPreferences(MY_RMBCost, 0);
if(my_rmb_data.getString(TodayTime, "").toString().equals(str)==true)
{
Toast.makeText(FirstActivity.this , "今日已签到!", Toast.LENGTH_SHORT).show();
}
else
{
my_rmb_data.edit()
.putString(TodayTime, str)
.commit();
tv_time.setText("日期:"+ str +"已签到!");
bt_qiandao.setBackgroundResource(R.drawable.yqd);
bt_qiandao.setText("✔签到");
Toast.makeText( FirstActivity.this , "签到成功!", Toast.LENGTH_SHORT).show();
}
}
});
//-------------------------------------每日资讯
//ArrayAdapter<News> listAdapter= new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,News.news);
ListView listnews = findViewById(R.id.list_news);
//listnews.setAdapter(listAdapter);
//设置游标适配器
SQLiteOpenHelper starbuzzDatabaseHelper=new CompanyDatabaseHelper(this);
//获得数据库引用
try {
SQLiteDatabase db =starbuzzDatabaseHelper.getReadableDatabase();
cursor = db.query("NEWS",
new String[]{"_id","TITLE"},
null,null,null,null,null);
SimpleCursorAdapter listAdapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
cursor,
new String[]{"TITLE"},
new int[]{android.R.id.text1},
0);
listnews.setAdapter(listAdapter);
}catch (SQLException e){
Log.e("sqlite",e.getMessage());
Toast toast=Toast.makeText(this,"Database unavaiable",Toast.LENGTH_SHORT);
toast.show();
}
//指定监听器 相应选项单击
AdapterView.OnItemClickListener itemClickListener=new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(FirstActivity.this,NewsActivity.class);
intent.putExtra(NewsActivity.EXTRA_DRINKID,(int)id);
startActivity(intent);
}
};
listnews.setOnItemClickListener(itemClickListener);
//-------------------------------------------------公司简介
Button btnintroduction = findViewById(R.id.introduction);
btnintroduction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this,IntroductionActivity.class);
startActivity(intent);
}
});
}
}
登录注册
package com.example.company;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_login);
//
// Button mbtnlogin = findViewById(R.id.btn_login);
// mbtnlogin.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
// Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
// Intent intent = new Intent(LoginActivity.this,FirstActivity.class);
// startActivity(intent);
// }
// });
//
// Button btnback = findViewById(R.id.btn_back);
// btnback.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// Intent intent = new Intent(LoginActivity.this,FirstActivity.class);
// startActivity(intent);
// }
// });
// }
private CompanyDatabaseHelper mDBOpenHelper;
private EditText mEtLoginactivityUsername;
private EditText mEtLoginactivityPassword;
private Button mBtLonginactivittRegister;
private Button mBtLoginactivityLogin;
private Button mBtLoginactivityGl;
private String rname;
private String rpassword;
/**
* 创建 Activity 时先来重写 onCreate() 方法
* 保存实例状态
* super.onCreate(savedInstanceState);
* 设置视图内容的配置文件
* setContentView(R.layout.activity_login);
* 上面这行代码真正实现了把视图层 View 也就是 layout 的内容放到 Activity 中进行显示
* 初始化视图中的控件对象 initView()
* 实例化 DBOpenHelper,待会进行登录验证的时候要用来进行数据查询
* mDBOpenHelper = new DBOpenHelper(this);
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initView();
rpassword();
mDBOpenHelper = new CompanyDatabaseHelper(this);
}
//记住密码
private void rpassword(){
if(rname!=null && rpassword!=null)
{
mEtLoginactivityUsername.setText(rname);
mEtLoginactivityPassword.setText(rpassword);
}
}
/**
* onCreae()中大的布局已经摆放好了,接下来就该把layout里的东西
* 声明、实例化对象然后有行为的赋予其行为
* 这样就可以把视图层View也就是layout 与 控制层 Java 结合起来了
*/
private void initView() {
// 初始化控件
mBtLoginactivityLogin = findViewById(R.id.bt_loginactivity_login);
mBtLoginactivityGl = findViewById(R.id.bt_loginactivityGl);
mBtLonginactivittRegister = findViewById(R.id.bt_loginactivity_register);
mEtLoginactivityUsername = findViewById(R.id.et_loginactivity_username);
mEtLoginactivityPassword = findViewById(R.id.et_loginactivity_password);
// 设置点击事件监听器
mBtLoginactivityLogin.setOnClickListener(this);
mBtLonginactivittRegister.setOnClickListener(this);
mBtLoginactivityGl.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()) {
// 跳转到注册界面
case R.id.bt_loginactivity_register:
startActivity(new Intent(this, RegisterActivity.class));
finish();
break;
case R.id.bt_loginactivityGl:
startActivity(new Intent(this,GloginActivity.class));
finish();
break;
/**
* 登录验证:
*
* 从EditText的对象上获取文本编辑框输入的数据,并把左右两边的空格去掉
* String name = mEtLoginactivityUsername.getText().toString().trim();
* String password = mEtLoginactivityPassword.getText().toString().trim();
* 进行匹配验证,先判断一下用户名密码是否为空,
* if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password))
* 再进而for循环判断是否与数据库中的数据相匹配
* if (name.equals(user.getName()) && password.equals(user.getPassword()))
* 一旦匹配,立即将match = true;break;
* 否则 一直匹配到结束 match = false;
*
* 登录成功之后,进行页面跳转:
*
* Intent intent = new Intent(this, MainActivity.class);
* startActivity(intent);
* finish();//销毁此Activity
*/
case R.id.bt_loginactivity_login:
String name = mEtLoginactivityUsername.getText().toString().trim();
String password = mEtLoginactivityPassword.getText().toString().trim();
rname = name;
rpassword = password;
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password)) {
ArrayList<User> data = mDBOpenHelper.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();
Intent intent = new Intent(this, FirstActivity.class);
startActivity(intent);
finish();//销毁此Activity
} else {
Toast.makeText(this, "用户名或密码不正确,请重新输入", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "请输入你的用户名或密码", Toast.LENGTH_SHORT).show();
}
break;
}
}
}
package com.example.company;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
/**
*/
/**
* 此类 implements View.OnClickListener 之后,
* 就可以把onClick事件写到onCreate()方法之外
* 这样,onCreate()方法中的代码就不会显得很冗余
*/
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
private CompanyDatabaseHelper mDBOpenHelper;
private Button mBtRegisteractivityRegister;
private EditText mEtRegisteractivityUsername;
private EditText mEtRegisteractivityPassword1;
private EditText mEtRegisteractivityPassword2;
private Button mBtRegisteractivityBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initView();
mDBOpenHelper = new CompanyDatabaseHelper(this);
}
private void initView(){
mBtRegisteractivityRegister = findViewById(R.id.bt_registeractivity_register);
mBtRegisteractivityBack = findViewById(R.id.bt_registeractivity_back);
mEtRegisteractivityUsername = findViewById(R.id.et_registeractivity_username);
mEtRegisteractivityPassword1 = findViewById(R.id.et_registeractivity_password1);
mEtRegisteractivityPassword2 = findViewById(R.id.et_registeractivity_password2);
/**
* 注册页面能点击的就三个地方
* top处返回箭头、刷新验证码图片、注册按钮
*/
mBtRegisteractivityBack.setOnClickListener(this);
mBtRegisteractivityRegister.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.bt_registeractivity_back: //返回登录页面
Intent intent1 = new Intent(this, LoginActivity.class);
startActivity(intent1);
finish();
break;
case R.id.bt_registeractivity_register: //注册按钮
//获取用户输入的用户名、密码、验证码
String username = mEtRegisteractivityUsername.getText().toString().trim();
String password1 = mEtRegisteractivityPassword1.getText().toString().trim();
String password2 = mEtRegisteractivityPassword2.getText().toString().trim();
//注册验证
if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password1) && !TextUtils.isEmpty(password2) ) {
if (password1.equals(password2)) {
//将用户名和密码加入到数据库中
mDBOpenHelper.login_add(username, password1);
Intent intent2 = new Intent(this, FirstActivity.class);
startActivity(intent2);
finish();
Toast.makeText(this, "验证通过,注册成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "密码不一致,注册失败", Toast.LENGTH_SHORT).show();
}
}else {
Toast.makeText(this, "未完善信息,注册失败", Toast.LENGTH_SHORT).show();
}
break;
}
}
}
管理员
package com.example.company;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class GuanliActivity extends AppCompatActivity implements View.OnClickListener {
private Cursor cursor;
private CompanyDatabaseHelper mDBOpenHelper;
private Button mbtadd;
private Button mbtdelete;
private Button mbtupdate;
private Button mbtsearch;
private Button mbtback;
private EditText medtname;
private EditText medtsex;
private EditText medttel;
private EditText medtposition;
private EditText medttime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guanli);
initView();
mDBOpenHelper = new CompanyDatabaseHelper(this);
}
private void initView(){
mbtadd = findViewById(R.id.bt_add);
mbtdelete = findViewById(R.id.bt_delete);
mbtupdate = findViewById(R.id.bt_update);
mbtsearch = findViewById(R.id.bt_search);
mbtback = findViewById(R.id.bt_guanliback);
medtname = findViewById(R.id.edt_name);
medtsex = findViewById(R.id.edt_sex);
medttel = findViewById(R.id.edt_tel);
medtposition = findViewById(R.id.edt_position);
medttime = findViewById(R.id.edt_time);
mbtadd.setOnClickListener(this);
mbtdelete.setOnClickListener(this);
mbtupdate.setOnClickListener(this);
mbtsearch.setOnClickListener(this);
mbtback.setOnClickListener(this);
}
public void onClick(View view){
switch (view.getId()){
case R.id.bt_add:
// int mid =Integer.parseInt (medtid.getText().toString());
String name = medtname.getText().toString().trim();
String sex = medtsex.getText().toString().trim();
String tel = medttel.getText().toString().trim();
String position = medtposition.getText().toString().trim();
String time = medttime.getText().toString().trim();
mDBOpenHelper.yuangong_add(name,sex,tel,position,time);
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
medtname.setText("");
medtsex.setText("");
medttel.setText("");
medtposition.setText("");
medttime.setText("");
break;
case R.id.bt_delete:
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("删除员工信息")
.setMessage("是否删除")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String name = medtname.getText().toString().trim();
String position = medtposition.getText().toString().trim();
mDBOpenHelper.yuangong_delete(name);
medtname.setText("");
medtsex.setText("");
medttel.setText("");
medtposition.setText("");
medttime.setText("");
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
return;
}
}).create();
alertDialog.show();
break;
case R.id.bt_update:
String uname = medtname.getText().toString().trim();
String utel = medttel.getText().toString().trim();
String uposition = medtposition.getText().toString().trim();
mDBOpenHelper.yuangong_updata(uname,uposition,utel);
Toast.makeText(this,"更新成功",Toast.LENGTH_SHORT).show();
medtname.setText("");
medtsex.setText("");
medttel.setText("");
medtposition.setText("");
medttime.setText("");
break;
case R.id.bt_search:
startActivity(new Intent(GuanliActivity.this, SearchActivity.class));
finish();//销毁此Activity
break;
case R.id.bt_guanliback:
startActivity(new Intent(GuanliActivity.this, GloginActivity.class));
finish();//销毁此Activity
break;
}
}
}
数据库
package com.example.company;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import java.util.ArrayList;
public class CompanyDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME="company.db";
private static final int DB_VER=1;
private SQLiteDatabase db;
public CompanyDatabaseHelper(Context context){
super(context,DB_NAME,null,DB_VER);
db = getReadableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
//建每日讯息表
db.execSQL("CREATE TABLE NEWS(_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"TITLE TEXT," +
"IMAGE_RESOURCE_ID INTEGER," +
"CONTENT TEXT);");
//建立登录表
db.execSQL("CREATE TABLE USER( _id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name TEXT," +
"password TEXT);");
//建立管理员登录表
db.execSQL("CREATE TABLE GUSER( _id INTEGER PRIMARY KEY AUTOINCREMENT," +
"gname TEXT," +
"password TEXT);");
db.execSQL("INSERT INTO guser (gname,password) VALUES('zzz','123')");
//建立用户信息表
db.execSQL("CREATE TABLE YUANGONG( _id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name TEXT," +
"sex TEXT,"+
"tel TEXT,"+
"position TEXT,"+
"TIME DATE);");
//插入每日讯息
insertNews(db,"通知1",R.drawable.news01,"aaaaaaaaaaaaaaaaaaaaaaaa");
insertNews(db,"通知2",R.drawable.news02,"bbbbbbbbbbbbbbbbbbbbbbbbbb");
}
private static void insertNews(SQLiteDatabase db,String title,int resourceId,String content){
ContentValues newsValues = new ContentValues();
newsValues.put("TITLE",title);
newsValues.put("IMAGE_RESOURCE_ID",resourceId);
newsValues.put("CONTENT",content);
long result = db.insert("NEWS",null,newsValues);
//日志插入结果
Log.d("sqlite","insert"+title+"_id"+result);
}
//登录表的相关操作
public void login_add(String name,String password){
db.execSQL("INSERT INTO user (name,password) VALUES(?,?)",new Object[]{name,password});
}
public void login_delete(String name,String password){
db.execSQL("DELETE FROM user WHERE name = AND password ="+name+password);
}
public void login_updata(String password){
db.execSQL("UPDATE user SET password = ?",new Object[]{password});
}
//管理员登录表的操作
public void glogin_add(String name,String password){
db.execSQL("INSERT INTO user (name,password) VALUES(?,?)",new Object[]{name,password});
}
public void glogin_delete(String name,String password){
db.execSQL("DELETE FROM user WHERE name = AND password ="+name+password);
}
public void glogin_updata(String password){
db.execSQL("UPDATE user SET password = ?",new Object[]{password});
}
public ArrayList<User> getAllData2(){
ArrayList<User> list = new ArrayList<User>();
Cursor cursor = db.query("guser",null,null,null,null,null,"gname DESC");
while(cursor.moveToNext()){
String gname = cursor.getString(cursor.getColumnIndex("gname"));
String password = cursor.getString(cursor.getColumnIndex("password"));
list.add(new User(gname,password));
}
cursor.close();
return list;
}
public ArrayList<User> getAllData(){
ArrayList<User> list = new ArrayList<User>();
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;
}
//员工表的相关操作
public void yuangong_add(String name,String sex,String tel,String position,String time){
db.execSQL("INSERT INTO yuangong (name,sex,tel,position,time) VALUES(?,?,?,?,?)",new Object[]{name,sex,tel,position,time});
}
public void yuangong_delete(String name){
db.execSQL("DELETE FROM yuangong WHERE name = ? ", new Object[]{name});
}
public void yuangong_updata(String name,String tel,String position){
db.execSQL("update yuangong set tel=?,position=? where name=?", new Object[]{tel,position,name});
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
}
}
本文地址:https://blog.csdn.net/Kiven_zhou/article/details/107212214
推荐阅读
-
诺基亚9 PureView五摄手机再曝光 将搭载安卓9 Pie系统
-
这就是微软折叠屏手机Surface Duo!采用谷歌深度定制安卓系统
-
安卓Q新功能了解下:所有APP播视频无需联网可生成字幕
-
发布四年 安卓6.0升级到安卓8.0 三星Galaxy S7/edge停止系统更新
-
谷歌开放人工智能系统 走安卓路线
-
安卓绿色联盟发布2018年度最受欢迎应用:这36款App上榜
-
银河麒麟操作系统V10开放下载:10多秒极速开机、兼容安卓
-
Win10新预览版Build 20257推送:修复CPU卡顿、支持安卓APP多开运行
-
安卓试玩赚钱哪个最高,最靠谱的赚钱APP推荐!
-
记录修改安卓5.0系统浏览器UI遇到的部分问题