功能需求
密码保险箱的功能
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>
编辑AndroidcaseActivity对button进行事件处理
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);
}
}