基于Android的人事管理系统开发与设计源码(二)

本文档详细介绍了基于Android开发的人事管理系统,涵盖了News模块、DAO层操作、新闻报告、记录管理、用户交互等多个活动类,以及PersonManage子模块中的人事操作,如添加员工、离职管理、请假审批等,展示了系统的主要功能和设计思路。
摘要由CSDN通过智能技术生成

News.java

package com.example.talk;
//实例化数据库对象
public class News {
	private String newsid;//新闻编号
	private String newsname;//新闻标题
	private String departmentName;//发布的部门
	private String newscontent;//新闻内容
	private String newsdate;//新闻时间
	
	public News(String newsid, String newsname,
			String departmentName, String newscontent,String newsdate) {
		super();
		this.newsid=newsid;
		this.newsname=newsname;
		this.departmentName=departmentName;
		this.newscontent=newscontent;
		this.newsdate=newsdate;
	}
	
	public String getNewsid() {
		return newsid;
	}

	public void setNewsid(String newsid) {
		this.newsid = newsid;
	}

	public String getNewsname() {
		return newsname;
	}

	public void setNewsname(String newsname) {
		this.newsname = newsname;
	}

	public String getDepartmentName() {
		return departmentName;
	}

	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}

	public String getNewscontent() {
		return newscontent;
	}

	public void setNewscontent(String newscontent) {
		this.newscontent = newscontent;
	}

	public String getNewsdate() {
		return newsdate;
	}

	public void setNewsdate(String newsdate) {
		this.newsdate = newsdate;
	}

	@Override
	public String toString() {  
		return "id=" +newsid + ", 新闻标题=" + newsname + ",发布的部门=" + departmentName 
				+ ",新闻内容=" + newscontent+",新闻时间="+newsdate;  
	} 
}

NewsDAO.java

package com.example.talk;
//管理员创建的数据库

import com.example.management.SqliteHelper;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class NewsDAO {
	private SqliteHelper helper;
	 //写入 ,不然会是出错,是空指针
	 public NewsDAO(Context context){
		 helper=new SqliteHelper(context);
	 }
	 /**
	  * 添加部门
	  */
	 public void add(News news){
		 SQLiteDatabase db=helper.getWritableDatabase(); 
		 String sql="Insert into newsreport(newsid,departmentName,newsname,newscontent,newsdate) values(?,?,?,?,?)";
		 db.execSQL(sql, new Object[]{news.getNewsid(),news.getDepartmentName(),news.getNewsname(),news.getNewscontent(),news.getNewsdate()});
		 db.close();
	 }
	 /**
	  * 删除指定编号的部门
	  */
	  public void delete(String...id){
		  if(id.length>0){
			 StringBuffer sb=new StringBuffer();
			 for(int i=0;i<id.length;i++){
				 sb.append("?").append(",");
			 }
			 sb.deleteCharAt(sb.length()-1);
			 SQLiteDatabase database=helper.getWritableDatabase();
			 String sql="delete from newsreport where newsid in ("+sb+")";
			 database.execSQL(sql, id);
		  }
	  }
	  /**
	   * 删除表里的全部数据
	   */
	  public void delelteall(){
			 SQLiteDatabase database=helper.getWritableDatabase();
			 String sql = "delete from newsreport";
			 database.execSQL(sql);
	  }
	  /**
	   * 根据编号修改数据
	   */
	  public void update(News news){
		  SQLiteDatabase db=helper.getWritableDatabase();
	 	  String sql="update newsreport set newsname=?,departmentName=?,newscontent=?,newsdate=?  where newsid=?";
	 	  db.execSQL(sql, new Object[]{news.getNewsname(),news.getDepartmentName(),news.getNewscontent(),news.getNewsid(),news.getNewsdate()});
	  }
	  /**
	   * 查找指定部门 编号的信息
	   */
	  public News find(String  id){
		  SQLiteDatabase db=helper.getWritableDatabase();
	 	  String sql="select *  from newsreport where newsid=?";
	 	  Cursor cursor=db.rawQuery(sql, new String[]{String.valueOf(id)});
	 	  if(cursor.moveToNext()){
	 		 return new News(
	 				 cursor.getString(cursor.getColumnIndex("newsid")),
	 		         cursor.getString(cursor.getColumnIndex("departmentName")),
	 				 cursor.getString(cursor.getColumnIndex("newsname")),
	 				 cursor.getString(cursor.getColumnIndex("newsdate")),
	 		         cursor.getString(cursor.getColumnIndex("newscontent")));
	 		 
	 	 }
	 	 return null;
	 }
	/**
	 * 显示部门信息
	 */
	public Cursor select() {
		SQLiteDatabase db = helper.getReadableDatabase();
		Cursor cursor = db.query("newsreport",
			null, null, null, null,null,"_id asc");
		return cursor;
	}
}

NewsreportActivity.java

package com.example.talk;

import com.example.kakalauncher.R;
import com.example.manage.ManagermainActivity;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class NewsreportActivity extends Activity  implements OnClickListener{
	final int DIALOG_DELETE=0; 
	final int DIALOG_UPDATE=1;
	private static final String TAG = "Add";
	private Button add,find,update,delect;
	private EditText newsid,newsname,newscontent,newsdate;
    private TextView title;
    private ListView listview;
    private Spinner newsreportName;
    private TextView datashow;
    private AutoCompleteTextView actv;
    //获取keys值用于自动完成文本框
    private String[] keys={"20151101","20151102","20151103"};
	@Override
	public void onCreate(Bundle savedInstanceState) {
		
		//隐藏标题栏,运营商图标和电量等
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
		
		super.onCreate(savedInstanceState);  
	    setContentView(R.layout.activity_newsreport);
	  //设置activity的背景图片
	    getWindow().setBackgroundDrawableResource(R.drawable.bg);
	    //获取组件
	    add=(Button)findViewById(R.id.add);
	    find=(Button)findViewById(R.id.find);
	    update=(Button)findViewById(R.id.select);
	    delect=(Button)findViewById(R.id.selectAll);
	    newsid=(EditText)findViewById(R.id.actv);
	    newsreportName=(Spinner)findViewById(R.id.newsreportName);
	    newsname=(EditText)findViewById(R.id.ednewsname);
	    newscontent=(EditText)findViewById(R.id.ednewscontent);
	    newsdate=(EditText)findViewById(R.id.ednewsdate);
	    title=(TextView)findViewById(R.id.Information);
	    listview = (ListView)findViewById(R.id.list); 
	    //获取组件
	    actv=(AutoCompleteTextView) findViewById(R.id.actv);
	    //自动完成文本框的适配器
	    //ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,keys);
	   
	    datashow = (TextView)findViewById(R.id.datashow);
	    //定义arrayadapter适配器
	    ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, 
				R.array.newsreportName, android.R.layout.simple_spinner_item);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		newsreportName.setAdapter(adapter);
		newsreportName.setPrompt("请选择发布者:");
		//创建监听器
	    add.setOnClickListener(this);
	    find.setOnClickListener(this);
	   
	    //为更新新闻创建事件监听
	    update.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(newsid.getText().toString().equals("")){
					Toast.makeText(NewsreportActivity.this, "新闻编号不能为空!", Toast.LENGTH_LONG).show(); 
				}
    			else{
    				News depertment = newsDAO.find(newsid.getText().toString());
    				if(depertment==null){
    					Toast.makeText(NewsreportActivity.this, "此新闻不存在!", Toast.LENGTH_LONG).show();
    					empty();
    				}
    				else{
    					//弹出dialog
    					showDialog(DIALOG_UPDATE);
    				}
    			} 										
			}		
		});	
	    //为删除部门创建事件监听
	    delect.setOnClickListener(new View.OnClickListener() {		
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//判断id值是否存在
				if(!newsid.getText().toString().equals("")){
        			News depertment = newsDAO.find(newsid.getText().toString());
        			if(depertment==null){
    					Toast.makeText(NewsreportActivity.this, "此新闻不存在!", Toast.LENGTH_LONG).show();
    					empty();
    				}
        			else{
        				showDialog(DIALOG_DELETE);
        			}
        		}
        		else {
        			 Toast.makeText(NewsreportActivity.this, "请输入要删除的新闻编号", Toast.LENGTH_LONG).show();
        		}
				
			}
		});
	}
	//定义一个empty方法,清空数据
	public void empty(){
		newsid.setText("");
		newsreportName.setSelection(0);
		newsname.setText("");
		newscontent.setText("");
		newsdate.setText("");
    }
	//为返回创建intent,事件监听
	public void goback(View view){
        Intent intent=new Intent();
        intent.setClass(NewsreportActivity.this, ManagermainActivity.class);
		startActivity(intent);
    }
	//实例化数据库
	NewsDAO newsDAO=new NewsDAO(this);
	@Override
	protected Dialog onCreateDialog(int id){
    	Dialog dialog=null;
    	Builder builder=new AlertDialog.Builder(this);
    	switch(id) {
    	case DIALOG_DELETE: //删除指定编号的新闻    		
    	    builder.setTitle("提示");
    	    builder.setMessage("确认删除这条新闻么?");
    	    builder.setPositiveButton(R.string.btnOK, new DialogInterface.OnClickListener(){
				@Override
				public void onClick(DialogInterface dialog,int which) {
					// TODO Auto-generated method stub
					try{
						newsDAO.delete(newsid.getText().toString());
            			Toast.makeText(NewsreportActivity.this, "编号为"+newsid.getText().toString()+"的新闻删除成功!"
            					, Toast.LENGTH_LONG).show();
            			empty();
	            	}
	            	catch (Exception e) {
	            		Log.i("Delete", e.getMessage());
	    			}
				}
    	    });
    	    builder.setNegativeButton(R.string.btnCancel, new DialogInterface.OnClickListener(){
				@Override
				public void onClick(DialogInterface dialog,int which) {
					// TODO Auto-generated method stub				
				}		
			});  
    	    dialog=builder.create();  
    	    break;
    	    //修改的dialog
    	case DIALOG_UPDATE:
    	    builder.setTitle("提示");
    	    builder.setMessage("确认修改这条新闻么?");
    	    builder.setPositiveButton(R.string.btnOK, new DialogInterface.OnClickListener(){
				@Override
				public void onClick(DialogInterface dialog,int which) {
					// TODO Auto-generated method stub
					if(newsid.getText().toString().equals("")){
						Toast.makeText(NewsreportActivity.this, "新闻编号不能为空!", Toast.LENGTH_LONG).show();
						
					}else{
						News news=newsDAO.find(newsid.getText().toString());
						if(news==null){
							Toast.makeText(NewsreportActivity.this, "新闻不存在!", Toast.LENGTH_LONG).show();
						}else{
							//实现页面的跳转
							Intent intent=new Intent();
							intent.setClass(NewsreportActivity.this, UpdatenewsActivity.class );
							//使用bundle进行数据封装
							Bundle bundle=new Bundle();
							bundle.putString("newsid", news.getNewsid());
							bundle.putString("newsname", news.getNewsname());
							bundle.putString("newscontent", news.getNewscontent());
							bundle.putString("newsdate", news.getNewsdate());
							bundle.putString("newsreportName", news.getDepartmentName());
							//将intent封装到bundle中
							intent.putExtras(bundle);
							startActivity(intent);
						}
					}
				}
    	    });
    	    builder.setNegativeButton(R.string.btnCancel, new DialogInterface.OnClickListener(){
				@Override
				public void onClick(DialogInterface dialog,int which) {
					// TODO Auto-generated method stub				
				}

			});  
    	    dialog=builder.create(); 
    		break;
    	default:
			    break;
    	}
    	return dialog;
    }
	@Override
	//onclick方法
	public void onClick(View v) {	
		switch (v.getId()) {
		//为添加创建监听器
		case R.id.add:
			try{
				if(newsid.getText().toString().equals("")){
					Toast.makeText(NewsreportActivity.this, "新闻编号不能为空!", Toast.LENGTH_LONG).show(); 
				}			
				else{
					News news = newsDAO.find(newsid.getText().toString());
					if(news==null){
						news = new News(newsid.getText().toString(), newsreportName.getSelectedItem().toString(), 
								                     newsname.getText().toString(),newscontent.getText().toString(),newsdate.getText().toString());
						newsDAO.add(news);
						Toast.makeText(NewsreportActivity.this, "成功添加!", Toast.LENGTH_LONG).show(); 
						//增加数据
						datashow.setText("增加新闻的信息显示如下:"+"\n"
							    +"新闻编号:"+newsid.getText().toString()+"\n"
								+"新闻发布者:"+newsreportName.getSelectedItem().toString()+"\n"
								+"新闻标题:"+newsname.getText().toString()+"\n"
								+"新闻内容:"+newscontent.getText().toString()+"\n"
								+"新闻时间:"+newsdate.getText().toString());
						empty();							
					}
					else{
						Toast.makeText(NewsreportActivity.this, "此编号的新闻已存在!", Toast.LENGTH_LONG).show(); 
						empty();
					}
			   }
			}
			catch (Exception e) {
				Log.i(TAG, "出错了");
				Log.i(TAG, e.getMessage());
			}			
			break;
            //查询全部新闻,显示出全部的新闻
        	case R.id.find:
        		if(newsid.getText().toString().equals("")){
        			try{
                        Cursor cursor = newsDAO.select();
                        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.departitem, cursor, 
                     		  new String[]{"_id","departmentID","departmentName","principal","tel"},
                     		  new int[]{R.id._id,R.id.tvdid,R.id.tvdname,R.id.tvdprincipal,R.id.tvdtel});
                        listview.setAdapter(adapter);
                        datashow.setText(" ");
                        //actv.setAdapter(adapter);
             		}
             		catch (Exception e) {
             			Log.i("显示所有", "出错了");
             			Toast.makeText(NewsreportActivity.this, "显示不了"+e.getMessage(), Toast.LENGTH_LONG).show();
     				}
        		}
        		else{
        			News news = newsDAO.find(newsid.getText().toString());
            		if(news!=null)
            		    datashow.setText("新闻编号:"+news.getNewsid()+" 新闻发布者:"+news.getDepartmentName()
            		    		+" 新闻标题:"+news.getNewsname()+" 新闻内容:"+news.getNewscontent()+"新闻时间:"+news.getNewsdate());
            		else
            			Toast.makeText(NewsreportActivity.this, "此新闻不存在!!", Toast.LENGTH_LONG).show(); 
            		empty();
        		}
        		break;          	
		    default:
			    break;
		}
	}
}

Record.java

package com.example.talk;


public class Record{
	
	//设置布局中放置图片的位置
	public int getDegrees(float a, float b) {
		float dx = a;
		float x = b / 4;
		float x2 = 3 * b / 4;
		if (dx < x / 10)
			return 10;
		else if (dx < x / 5)
			return 9;
		else if (dx < x * 3 / 10)
			return 8;
		else if (dx < x * 2 / 5)
			return 7;
		else if (dx < x * 5 / 10)
			return 6;
		else if (dx < x * 3 / 5)
			return 5;
		else if (dx < x * 7 / 10)
			return 4;
		else if (dx < x * 4 / 5)
			return 3;
		else if (dx < x * 9 / 10)
			return 2;
		else if (dx < x)
			return 2;
		else if (dx - x2 > x * 9 / 10)
			return 10;
		else if (dx - x2 > x * 4 / 5)
			return 9;
		else if (dx - x2 > x * 7 / 10)
			return 8;
		else if (dx - x2 > x * 3 / 5)
			return 7;
		else if (dx - x2 > x * 5 / 10)
			return 6;
		else if (dx - x2 > x * 2 / 5)
			return 5;
		else if (dx - x2 > x * 3 / 10)
			return 4;
		else if (dx - x2 > x / 5)
			return 3;
		else if (dx - x2 > x / 10)
			return 2;
		return 10;
	}
}

SentenceActivity.java

package com.example.talk;

import com.example.kakalauncher.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

public class SentenceActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		//隐藏标题栏,运营商图标和电量等
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
				
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sentence);
	}
	public void goback(View view){
		Intent intent=new Intent();
		intent.setClass(SentenceActivity.this, TalkmainActivity.class);
		startActivity(intent);
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.sentence, menu);
		return true;
	}

}

TalkmainActivity.java

package com.example.talk;

import com.example.kakalauncher.R;
import com.example.manage.ManagermainActivity;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;
//管理员管理留言和发布新闻
pu
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蹦跶的小羊羔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值