用户登录记住密码案例
2017-04-10 21:23
519 查看
New Project-->项目名称:Case_login-->活动名称:LoginActivity。
在drawable下放入所需图片;
在drawable下,新建文件,
①用来表述界面上部分的背景的圆角的设置,
具体步骤:drawbale右击-->Drawable Resource
File-->
---->OK。
Logintop_roundbg.xml文件里面不是用选择器<selector>,而是用<shape>来描述形状。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp"></corners>
<solid android:color="#55FFFFFF"></solid>
</shape>
②在drawable下再新建一个Drawable Resource File,
btn_select.xml文件 描述Button按钮背景的圆角的设置,
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.
com/apk/res/android">
<item android:drawable="@drawable/btn_shape"
android:state_pressed="false"></item>
<itemandroid:drawable="@drawable/btn_select"
android:state_pressed="true"></item>
</selector>
③在drawable下再新建一个Drawable Resource File,
btn_shape.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF72CAE1"></solid>
<corners android:radius="10dp"></corners>
</shape>
④在drawable下再新建一个Drawable Resource File,
btn_shape_after.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.
com/apk/res/android">
<solid android:color="#87cefa"></solid>
<corners android:radius="10dp"></corners>
</shape>
⑤在drawable下再新建一个Drawable Resource File,
loginbg.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="45" //以45角度的方向渐变
android:endColor="#FF72CAE1"
android:startColor="#FFACDAE5" />
</shape>
LoginActivity.java
public class login extends AppCompatActivity {
private EditText etName;
private EditText etPassword;
private SharedPreferences sharedPreferences;
private CheckBox cbIsRememberPass;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// SharedPreferences sharedPreferences=getSharedPreferences
(“datd”, Context.MODE_PRIVATE);
// SharedPreferences.Editor editor=sharedPreferences.edit();
// editor.putString(“name”,”zhangsan”);
//editor.putInt(“age”,18);
initViews();
sharedPreferences=getSharedPreferences("rememberpassword"
,Context.MODE_PRIVATE);
boolean isRemember=sharedPreferences.getBoolean
("rememberpassword",false);
if(isRemember)
{
String name=sharedPreferences.getString("name","");
String password=sharedPreferences.getString("password","");
etName.setText(name);
etPassword.setText(password);
cbIsRememberPass.setChecked(true);
}
}
private void initViews()
{
etName=(EditText)findViewById(R.id.etName);
etPassword=(EditText)findViewById(R.id.etPassword);
cbIsRememberPass=(CheckBox) findViewById(R.id.cbIsRememberPass);
}
Public void login(View view)
{
String name=etName.getText().toString();
String password=etPassword.getText().toString();
if("admin".equals(name)&&"123456".equals(password))
{
SharedPreferences.Editoreditor=sharedPreferences.edit();
if(cbIsRememberPass.isChecked())
{
editor.putBoolean("rememberpassword",true);
editor.putString("name",name);
editor.putString("password",password);
}
else
{
editor.clear();
}
editor.commit();
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent); finish();
}
Else
{
Toast.makeText(this,
"账号或密码有误",Toast.LENGTH_LONG).show();
}
}
}
Login_top.xml:
在layout下,新建XML->
Layout XML-->
--->finish。
Login_top.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
Android:padding=”@dimen/activity_horizontal_margin”
//在values下的dimens.xml下设置,其里面的组件距容器的上下左右都有距离
android:background="@drawable/logintop_roundbg"
//半透明度为55>
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/edit_text"//设置文本框的背景
android:drawableLeft="@drawable/icon_user"
android:drawablePadding=”10dp”
android:ems="10"
android:hint="@string/etName"
//在values下的strings.xml里面定义 >
<requestFocus />//默认获取焦点
</EditText>
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/etName"
android:background="@android:drawable/edit_text"
android:drawableLeft="@drawable/icon_pass"
android:ems="10"
android:hint="@string/etPass"
android:inputType="textPassword"
//输进去的内容不是明文显示,以小圆点的形式显示输入的内容>
<requestFocus />
</EditText>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/etPassword"
//整个线性布局在etPassword文本框下方>
<CheckBox
android:text=”记住密码”
android:layout_height=”0dp”
android:layout_width=”wrap_content”
android:id=”@+id/cbIsRememberPass”
android:textSize=”20sp”
android:layout_weight=”1”
/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
Android:layout_marginLeft=”10dp”//组件与组件之间的距离
android:background="@drawable/btn_select"
android:onClick=”login”
android:text="@string/btnRegister" />
</LinearLayout>
</RelativeLayout>
activity_login.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/loginbg"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<include layout="@layout/login_top"></include>
<ImageView //在整个页面的其右下角
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="13dp"
android:layout_marginEnd="13dp"
android:layout_marginRight="13dp"
app:srcCompat="@drawable/deer" />
</RelativeLayout>
在values下的strings.xml里:
<resources>
<string name="app_name">Case_login</string>
<string name="etName">请输入账号</string>
<string name="etPass">请输入密码</string>
<string name="btnLogin">登录</string>
<string name="btnRegister">注册</string>
</resources>
在values下的dimens.xml里:
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
MainActivity.java
在java包下新建一个MainActivity,在activity_main.xml中编辑点击按钮后显示的界面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="cn.edu.bzu.case_login.MainActivity">
<TextView
android:text="Welcome you"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:textSize="40dp"
android:layout_marginBottom="219dp"
android:id="@+id/textView" />
</RelativeLayout>
运行结果图:
当输入正确的用户账号和密码,弹出欢迎界面。
在如图所示的位置中可以导出保存的文件
文件内容如下:
若勾选记住密码时,运行后,退出再进入时,账号密码依然存在。
当输入正确的用户账号和密码,若不勾选记住密码时,运行后,退出再进入时,账号密码不再存在。
输入错误的账户和密码时,弹出错误提示。
在drawable下放入所需图片;
在drawable下,新建文件,
①用来表述界面上部分的背景的圆角的设置,
具体步骤:drawbale右击-->Drawable Resource
File-->
---->OK。
Logintop_roundbg.xml文件里面不是用选择器<selector>,而是用<shape>来描述形状。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp"></corners>
<solid android:color="#55FFFFFF"></solid>
</shape>
②在drawable下再新建一个Drawable Resource File,
btn_select.xml文件 描述Button按钮背景的圆角的设置,
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.
com/apk/res/android">
<item android:drawable="@drawable/btn_shape"
android:state_pressed="false"></item>
<itemandroid:drawable="@drawable/btn_select"
android:state_pressed="true"></item>
</selector>
③在drawable下再新建一个Drawable Resource File,
btn_shape.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF72CAE1"></solid>
<corners android:radius="10dp"></corners>
</shape>
④在drawable下再新建一个Drawable Resource File,
btn_shape_after.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.
com/apk/res/android">
<solid android:color="#87cefa"></solid>
<corners android:radius="10dp"></corners>
</shape>
⑤在drawable下再新建一个Drawable Resource File,
loginbg.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="45" //以45角度的方向渐变
android:endColor="#FF72CAE1"
android:startColor="#FFACDAE5" />
</shape>
LoginActivity.java
public class login extends AppCompatActivity {
private EditText etName;
private EditText etPassword;
private SharedPreferences sharedPreferences;
private CheckBox cbIsRememberPass;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// SharedPreferences sharedPreferences=getSharedPreferences
(“datd”, Context.MODE_PRIVATE);
// SharedPreferences.Editor editor=sharedPreferences.edit();
// editor.putString(“name”,”zhangsan”);
//editor.putInt(“age”,18);
initViews();
sharedPreferences=getSharedPreferences("rememberpassword"
,Context.MODE_PRIVATE);
boolean isRemember=sharedPreferences.getBoolean
("rememberpassword",false);
if(isRemember)
{
String name=sharedPreferences.getString("name","");
String password=sharedPreferences.getString("password","");
etName.setText(name);
etPassword.setText(password);
cbIsRememberPass.setChecked(true);
}
}
private void initViews()
{
etName=(EditText)findViewById(R.id.etName);
etPassword=(EditText)findViewById(R.id.etPassword);
cbIsRememberPass=(CheckBox) findViewById(R.id.cbIsRememberPass);
}
Public void login(View view)
{
String name=etName.getText().toString();
String password=etPassword.getText().toString();
if("admin".equals(name)&&"123456".equals(password))
{
SharedPreferences.Editoreditor=sharedPreferences.edit();
if(cbIsRememberPass.isChecked())
{
editor.putBoolean("rememberpassword",true);
editor.putString("name",name);
editor.putString("password",password);
}
else
{
editor.clear();
}
editor.commit();
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent); finish();
}
Else
{
Toast.makeText(this,
"账号或密码有误",Toast.LENGTH_LONG).show();
}
}
}
Login_top.xml:
在layout下,新建XML->
Layout XML-->
--->finish。
Login_top.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
Android:padding=”@dimen/activity_horizontal_margin”
//在values下的dimens.xml下设置,其里面的组件距容器的上下左右都有距离
android:background="@drawable/logintop_roundbg"
//半透明度为55>
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/edit_text"//设置文本框的背景
android:drawableLeft="@drawable/icon_user"
android:drawablePadding=”10dp”
android:ems="10"
android:hint="@string/etName"
//在values下的strings.xml里面定义 >
<requestFocus />//默认获取焦点
</EditText>
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/etName"
android:background="@android:drawable/edit_text"
android:drawableLeft="@drawable/icon_pass"
android:ems="10"
android:hint="@string/etPass"
android:inputType="textPassword"
//输进去的内容不是明文显示,以小圆点的形式显示输入的内容>
<requestFocus />
</EditText>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/etPassword"
//整个线性布局在etPassword文本框下方>
<CheckBox
android:text=”记住密码”
android:layout_height=”0dp”
android:layout_width=”wrap_content”
android:id=”@+id/cbIsRememberPass”
android:textSize=”20sp”
android:layout_weight=”1”
/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
Android:layout_marginLeft=”10dp”//组件与组件之间的距离
android:background="@drawable/btn_select"
android:onClick=”login”
android:text="@string/btnRegister" />
</LinearLayout>
</RelativeLayout>
activity_login.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/loginbg"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<include layout="@layout/login_top"></include>
<ImageView //在整个页面的其右下角
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="13dp"
android:layout_marginEnd="13dp"
android:layout_marginRight="13dp"
app:srcCompat="@drawable/deer" />
</RelativeLayout>
在values下的strings.xml里:
<resources>
<string name="app_name">Case_login</string>
<string name="etName">请输入账号</string>
<string name="etPass">请输入密码</string>
<string name="btnLogin">登录</string>
<string name="btnRegister">注册</string>
</resources>
在values下的dimens.xml里:
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
MainActivity.java
在java包下新建一个MainActivity,在activity_main.xml中编辑点击按钮后显示的界面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="cn.edu.bzu.case_login.MainActivity">
<TextView
android:text="Welcome you"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:textSize="40dp"
android:layout_marginBottom="219dp"
android:id="@+id/textView" />
</RelativeLayout>
运行结果图:
当输入正确的用户账号和密码,弹出欢迎界面。
在如图所示的位置中可以导出保存的文件
文件内容如下:
若勾选记住密码时,运行后,退出再进入时,账号密码依然存在。
当输入正确的用户账号和密码,若不勾选记住密码时,运行后,退出再进入时,账号密码不再存在。
输入错误的账户和密码时,弹出错误提示。
相关文章推荐
- 用户登录记住密码案例
- Android案例-用户登录记住密码
- 案例------用户登录记住密码
- 用户登录记住密码案例
- Android数据存储和访问之SharedPreferences存储方式_用户登录记住密码案例
- 用户登录记住密码案例
- 案例------用户登录记住密码
- 公司局域网内访问其他电脑,为了方便,第一次登录时用户名和密码选择了记住,现在想更换用户登陆
- 登录时记住用户名和密码及cookie案例应用
- android开发,以记住用户登录密码为例说明SharedPreferences的简单应用
- 用户登录时的用户名密码加密解密问题和“记住密码”功能
- ios用户登录记住密码
- 这才是一个完整的用户登录(Forms身份认证+记住密码+加密存储+LoginedPage/BasePage)
- android基础-利用SharedPreferences实现用户记住密码和自动登录
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- 使用jquery.cookie.js实现记住用户信息(下面以web的记住登录名和密码为例进行说明)
- 使用Jquery搭建最佳用户体验的登录页面 之 记住密码自动登录功能
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- 登录时记住用户名和密码及cookie案例应用
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)