移动开发大作业————密码保险箱(登陆及主界面)

功能需求

密码保险箱的功能

1.进入需要密码,并且密码可进行修改

2.可以添加新的密码

3.根据关键字查找密码

4.显示所有的密码

登陆部分编写

首先,建立hint.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
	android:background="@drawable/others"
    >

    
    <TextView
        android:id="@+id/onetext"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="注意:
        
        
        
        
        
        
       老师,一开始的密码是admin哦"
         />
           
</LinearLayout>

Hint只有一个textview用来提示初始密码的,然后在建立login.xml来设置密码的输入

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bgd"
    android:orientation="vertical">

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="密码"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />
            
    <EditText
        android:id="@+id/password"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:password="true"
        android:textAppearance="?android:attr/textAppearanceMedium" /> 
        
</LinearLayout>


然后将登录密码的修改密码界面login_changeqwd.xml建立起来

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:orientation="vertical">

 

    <TextView

        android:id="@+id/twotext"

        android:layout_height="wrap_content"

        android:layout_width="wrap_content"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip"

        android:text="旧密码"

        android:gravity="left"

        android:textAppearance="?android:attr/textAppearanceMedium" />

            

    <EditText

        android:id="@+id/twoedit"

        android:layout_height="wrap_content"

        android:layout_width="fill_parent"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip"

        android:scrollHorizontally="true"

        android:autoText="false"

        android:capitalize="none"

        android:gravity="fill_horizontal"

        android:password="true"

        android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView

        android:id="@+id/threetext"

        android:layout_height="wrap_content"

        android:layout_width="wrap_content"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip"

        android:text="新密码"

        android:gravity="left"

        android:textAppearance="?android:attr/textAppearanceMedium" />

            

    <EditText

        android:id="@+id/threeedit"

        android:layout_height="wrap_content"

        android:layout_width="fill_parent"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip"

        android:scrollHorizontally="true"

        android:autoText="false"

        android:capitalize="none"

        android:gravity="fill_horizontal"

        android:password="true"

        android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView

        android:id="@+id/fourtext"

        android:layout_height="wrap_content"

        android:layout_width="wrap_content"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip"

        android:text="确定密码"

        android:gravity="left"

        android:textAppearance="?android:attr/textAppearanceMedium" />

            

    <EditText

        android:id="@+id/fouredit"

        android:layout_height="wrap_content"

        android:layout_width="fill_parent"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip"

        android:scrollHorizontally="true"

        android:autoText="false"

        android:capitalize="none"

        android:gravity="fill_horizontal"

        android:password="true"

        android:textAppearance="?android:attr/textAppearanceMedium" />        

</LinearLayout>


 

 


建立login继承Activity

public class login extends Activity {
	SharedPreferences shared = null;
	Editor editor = null;
	private EditText password = null;//登陆密码
	private EditText twoedit = null;//旧密码
	private EditText threeedit = null;//新密码
	private EditText fouredit = null;//确认新密码
	String password01;//默认密码
	View DialogView = null;
	View dialogView = null;

	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.hint);
        shared = getSharedPreferences("passwordshared", Activity.MODE_PRIVATE);
        temp();       
    }
	
	public void temp(){//登陆页面
		editor = shared.edit();//打开指定shared文件,如果 不存在则创建他
		password01 = shared.getString("password", "admin");
		LayoutInflater factory = LayoutInflater.from(this);//得到自定义对话框
        DialogView = factory.inflate(R.layout.login, null);//基于xml布局文件创建一个对话框样式预备使用
        password = (EditText)DialogView.findViewById(R.id.password);
		AlertDialog dlg = new AlertDialog.Builder(this)
        .setTitle("请输入密码")
        .setIcon(R.drawable.dl_icon)
        .setView(DialogView)
        .setPositiveButton("登陆", new DialogInterfaceOnClick2())  //设置确定按钮并且绑定监听事件
        .setNeutralButton("修改", new DialogInterfaceOnClick3())   //设置修改按钮并且绑定监听事件
        .setNegativeButton("退出", new DialogInterfaceOnClick6())  //设置取消按钮并且绑定监听事件
        .create();//设置取消按钮并创建
        dlg.show();//显示
	}
	
	public void alter(){//修改页面
		LayoutInflater factory = LayoutInflater.from(login.this);//得到自定义对话框
		dialogView = factory.inflate(R.layout.login_changepwd, null);
		AlertDialog dlg = new AlertDialog.Builder(login.this)
		.setTitle("请修改密码")
		.setView(dialogView)
		.setPositiveButton("确定", new DialogInterfaceOnClick5())
		.setNegativeButton("取消", new DialogInterfaceOnClick4())
		.create();
		dlg.show();
		
	}
    
    class DialogInterfaceOnClick2 implements DialogInterface.OnClickListener{//登陆

		public void onClick(DialogInterface dialog, int whichButton) {
			String pass = password.getText().toString();//拿到用户输入的值
			if(pass.equals(password01)){
				Toast.makeText(login.this, "登陆成功", Toast.LENGTH_SHORT).show();
				Intent intent = new Intent();
				intent.setClass(login.this, AndroidcaseActivity.class);
				login.this.startActivity(intent);
				finish();
			}else{
				Toast.makeText(login.this, "密码错误!", Toast.LENGTH_SHORT).show();
				temp();
			}
		}
    }
    
    class DialogInterfaceOnClick3 implements DialogInterface.OnClickListener{//修改

		public void onClick(DialogInterface dialog, int whicButton) {
			alter();
			twoedit = (EditText)dialogView.findViewById(R.id.twoedit);
			threeedit = (EditText)dialogView.findViewById(R.id.threeedit);
			fouredit = (EditText)dialogView.findViewById(R.id.fouredit);
		}
    	
    }
    class DialogInterfaceOnClick4 implements DialogInterface.OnClickListener{//取消

		 
		public void onClick(DialogInterface dialog, int whichButton) {
			temp();
		}
    }
    class DialogInterfaceOnClick6 implements DialogInterface.OnClickListener{//退出

		 
		public void onClick(DialogInterface dialog, int whichButton) {
			login.this.finish();//点击退出按钮之后调用finish方法结束应用程序			
		}
    	
    }
    
    class DialogInterfaceOnClick5 implements DialogInterface.OnClickListener{//修改密码确定

		 
		public void onClick(DialogInterface dialog, int whichButton) {
		String two = twoedit.getText().toString();//旧密码
		String three = threeedit.getText().toString();//新密码
		String four = fouredit.getText().toString();//确认新密码
			if(two.equals(password01)&&four.equals(three)){
//				editor = shared.edit();  //打开指定shared文件,如果不存在则创建他
				editor.putString("password", three);
				editor.commit();//提交	
				temp();
				Toast.makeText(login.this, "修改成功", Toast.LENGTH_SHORT).show();
			}else if(!two.equals(password01)){
					Toast.makeText(login.this, "旧密码输入错误", Toast.LENGTH_SHORT).show();
					temp();
			}else if(!four.equals(three)){
					Toast.makeText(login.this, "两次新密码输入不一致", Toast.LENGTH_SHORT).show();
					temp();
			}
		}
    	
}


主要功能部分编写

首先要建立主要功能去的界面布局main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/index_bg" >
<RelativeLayout 
    android:layout_height="fill_parent"
    android:layout_width="fill_parent">
    <ImageButton 
        android:layout_height="wrap_content"
        android:layout_width="140dip"
        android:layout_marginTop="100dip"
        android:layout_centerHorizontal="true"
        android:id="@+id/button_add"
        android:text="@string/button_add"/>
    <ImageButton 
        android:layout_height="wrap_content"
        android:layout_width="140dip"
        android:layout_below="@id/button_add"
        android:layout_marginTop="10dip"
        android:layout_centerHorizontal="true"
        android:id="@+id/button_search"
        android:text="@string/button_search"/>
    <ImageButton 
        android:layout_height="wrap_content"
        android:layout_width="140dip"
        android:layout_below="@id/button_search"
        android:layout_marginTop="10dip"
        android:layout_centerHorizontal="true"
        android:id="@+id/button_preview"
        android:text="@string/button_preview"/>

</RelativeLayout>
</LinearLayout>


 

编辑AndroidcaseActivitybutton进行事件处理

public class AndroidcaseActivity<SQLiteQuery, SQLiteCursorDriver> extends Activity {
	private ImageButton button_add,button_search,button_preview,button_about;
     
    private SQLiteDatabase database;
    private int back=0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button_add=(ImageButton) findViewById(R.id.button_add);
        button_add.setImageDrawable(getResources().getDrawable(R.drawable.add_record));
        button_add.setOnClickListener(new mybutton());
        button_search=(ImageButton) findViewById(R.id.button_search);
        button_search.setImageDrawable(getResources().getDrawable(R.drawable.seek_record));
        button_search.setOnClickListener(new mybutton());
        button_preview=(ImageButton) findViewById(R.id.button_preview);
        button_preview.setImageDrawable(getResources().getDrawable(R.drawable.record_preview));
        button_preview.setOnClickListener(new mybutton());

        
        
			  
        SQLiteDatabase DataBase=this.openOrCreateDatabase("information.db", Context.MODE_APPEND,null);  
    }  
     
    
    class mybutton implements  OnClickListener{
    	public void onClick(View v) {
    		switch(v.getId()){
    		case R.id.button_add:
    			Intent  intent=new Intent();
				intent.setClass(AndroidcaseActivity.this, add_record.class);
				startActivity(intent);
				AndroidcaseActivity.this.finish(); 
				break;
    		case R.id.button_search:
    			Intent  intent1=new Intent();
				intent1.setClass(AndroidcaseActivity.this, search_record.class);
				startActivity(intent1);
				AndroidcaseActivity.this.finish();
				break;
    		case R.id.button_preview:
    			Intent  intent2=new Intent();
				intent2.setClass(AndroidcaseActivity.this, query.class);
				startActivity(intent2);
				AndroidcaseActivity.this.finish(); 
				break;

    				  
    				 }
    				 
    	}
    }  
    public boolean onKeyDown(int keyCode, KeyEvent event) {//back退出
		if(keyCode == KeyEvent.KEYCODE_BACK){
			back++;
			switch (back) {
			case 1:
				Toast.makeText(AndroidcaseActivity.this, "再按一次退出程序", Toast.LENGTH_LONG).show();
				break;
			case 2:
				back = 0;//初始化back值
				AndroidcaseActivity.this.finish();
				android.os.Process.killProcess(android.os.Process.myPid());//关闭进程
				break;
			}
			return true;//设置成false让back失效    ,true表示 不失效
		}
		else{
			return super.onKeyDown(keyCode, event);
		}
	}


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android开发期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用开发课程大作业 二、实验目的 1.通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的Android手机应用开发知识。 2.为学生综合应用本专业所学习的多门课程知识(例如,软件工程、数据库、Java语言、Java Web开发等)创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。 3.掌握Android手机应用设计的方法与技巧。 三、实验内容及要求 1、设计内容 题目、设计内容自拟,工作量适中,要求学生应用课程所学知识,采用JAVA语言和Android手机应用开发技术实现一个完整的系统。 ①完成大作业报告。 ②实现各系统功能,并完成调试运行。 2、主要技术 采用Java语言并不仅限于Java语言实现系统。 开发环境与工具:Android Studio 3.2以上版本; 操作系统:Win7/Win10或其他; 4、设计成果: 材料上交:电子文档(大作业任务书+大作业报告+源代码,电子稿请刻在光盘上)、打印稿(大作业任务书+大作业报告)。 四、成绩评定: 考核标准包括: 1、选题的工作量,难度和新颖程度 2、系统架构设计是否良好,运行过程是否报错 3、界面设计的合理性和美观程度 4、基本功能的实现 分值60 (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理、多媒体处理等 分值10 5、考核方式为面对面答辩,在课程的后两周内集中进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值