Android Walker登录记住密码页面功能实现
本文实例为大家分享了Android Walker登录记住密码页面的具体代码,供大家参考,具体内容如下
目标效果:
这一次修改的不多,添加了点击用户登录的跳转,登录页面的记住密码,和程序运行一次后,不进入导航页面的功能。
1.MainActivity.java页面修改了setOnItemClickListener的点击事件,进行跳转。
MainActivity.java页面:
package com.example.login;
import java.util.ArrayList;
import java.util.List;
import com.example.walkersimulate.util.SlideMenu;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
private SlideMenu slideMenu;
private ImageView ivSwitchSlideMenu;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initMenuList();
slideMenu = (SlideMenu) findViewById(R.id.slideMenu);
ivSwitchSlideMenu = (ImageView) findViewById(R.id.switch_slidemenu);
ivSwitchSlideMenu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (slideMenu.isMainScreenShowing()) {// 判断滑动菜单是否已打开,如果未打开
slideMenu.openMenu(); // 打开滑动菜单
} else {
slideMenu.closeMenu();// 关闭滑动菜单
}
}
});
}
private void initMenuList() {
/*设置数据源(图片和文本信息)*/
int[] icons = { R.drawable.icons_menu_login,
R.drawable.icons_menu_sport, R.drawable.icons_menu_inform,
R.drawable.icons_menu_history, R.drawable.icons_menu_weather,
R.drawable.icons_menu_health, R.drawable.icons_menu_setting };
final String[] introductons = getResources().getStringArray(
R.array.menulist);
/*实例列表*/
List<Item> items = new ArrayList<Item>();
/*向列表中添加图片和对应的文本信息*/
for (int i = 0; i < icons.length; i++) {
items.add(new Item(icons[i], introductons[i]));
}
ListView lvMenuList = (ListView) findViewById(R.id.lvMenuList);
/*创建适配器*/
itemAdapter adapter = new itemAdapter(this, R.layout.menulist_item,
items);
/*配置适配器*/
lvMenuList.setAdapter(adapter);
/*列表某一项的点击事件*/
lvMenuList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {
switch (position) {
case 0:
intent=new Intent(MainActivity.this,LoginActivity.class);
startActivity(intent);
break;
default:
break;
}
}
});
}
}
2.WelcomeActivity.java页面修改onAnimationEnd动画结束事件。
WelcomeActivity.java页面:
package com.example.login;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.widget.RelativeLayout;
public class WelcomeActivity extends Activity {
private Intent intent;
private SharedPreferences pref;
private boolean isFirst=true;//用于判断是否是第一次运行,运行后变为false
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
RelativeLayout layoutWelcome=(RelativeLayout) findViewById(R.id.layoutwelcome);
AlphaAnimation alphaAnimation=new AlphaAnimation(0.1f,1.0f);
alphaAnimation.setDuration(3000);
layoutWelcome.startAnimation(alphaAnimation);
alphaAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
judgeIntent();
}
private void judgeIntent() {
pref=getSharedPreferences("isFirst",MODE_PRIVATE);//创建SharedPreferences对象
isFirst=pref.getBoolean("isFirstIn",true);//如果第一次运行,无isFirstIn值,自动获取第二个参数为默认值
if(isFirst){//如果为true,进入if语句
intent=new Intent(WelcomeActivity.this,GiudeActivity.class);
Editor editor=pref.edit();
editor.putBoolean("isFirstIn",false);//保存isFirstIn值为false
editor.commit();//提交数据
}else{
intent=new Intent(WelcomeActivity.this,MainActivity.class);//如果为false,说明程序已经运行过,直接跳转到主页面
}
startActivity(intent);
finish();
}
});
}
}
3.login_top.xml页面添加多选框,用于选择记住密码。
login_top.xml页面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/logintop_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_horizontal_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_top_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/etName"
android:hint="@string/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@android:drawable/edit_text"
android:drawableLeft="@drawable/etaccount"
android:drawablePadding="25dp"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/etPass"
android:hint="@string/etPass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/etName"
android:layout_below="@+id/etName"
android:layout_marginTop="10dp"
android:background="@android:drawable/edit_text"
android:drawableLeft="@drawable/etpass"
android:drawablePadding="10dp"
android:ems="10"
android:inputType="textPassword" />
<CheckBox
android:id="@+id/cbSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="110dp"
android:text="记住密码"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/etPass"
android:layout_below="@+id/etPass"
android:layout_marginTop="40dp" >
<Button
android:id="@+id/btLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btchange_bg"
android:text="@string/btLogin" />
<Button
android:id="@+id/btRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btchange_bg"
android:text="@string/btRegister"
android:layout_marginLeft="5dp" />
</LinearLayout>
</RelativeLayout>
4.LoginActivity.java页面处理数据并保存。
LoginActivity.java页面:
package com.example.login;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends Activity implements OnClickListener{
private EditText etName,etPass;
private CheckBox cbSave;
private Button btLogin,btRegister;
private SharedPreferences pref;
private Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
/*获取控件id*/
getId();
/*获取数据*/
getData();
/*绑定点击事件*/
bindClick();
}
/*获取控件id*/
private void getId() {
etName=(EditText) findViewById(R.id.etName);
etPass=(EditText) findViewById(R.id.etPass);
cbSave=(CheckBox) findViewById(R.id.cbSave);
btLogin=(Button) findViewById(R.id.btLogin);
btRegister=(Button) findViewById(R.id.btRegister);
}
/*获取数据*/
private void getData() {
pref=getSharedPreferences("savaLogin",MODE_PRIVATE);//创建SharedPreferences对象
editor=pref.edit();//创建SharedPreferences的编辑器
String userName=pref.getString("userName","");//获取用户名,没有则用空代替
String userPass=pref.getString("userPass","");
if(userName.equals("")){//如果为空,代表前一次为选择记住密码,则这次显示记住密码多选框不打勾
cbSave.setChecked(false);
}else{
cbSave.setChecked(true);
etName.setText(userName);//将获取到的值设置为text
etPass.setText(userPass);
}
}
/*点击事件保存数据*/
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btLogin:
String userName=etName.getText().toString().trim();//获取EditText中输入的值,并去掉空格
String userPass=etPass.getText().toString().trim();
if("admin".equals(userName)&&"123456".equals(userPass)){
if(cbSave.isChecked()){
editor.putString("userName",userName);
editor.putString("userPass",userPass);
editor.commit();//提交数据
}else{//若没有选择记住密码
editor.remove("userPass");//删除密码
editor.commit();
}
Toast.makeText(LoginActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(LoginActivity.this,"用户名或密码错误",Toast.LENGTH_SHORT).show();
}
break;
case R.id.btRegister:
break;
}
}
private void bindClick() {
btLogin.setOnClickListener(this);
btRegister.setOnClickListener(this);
}
}
5.程序运行就显示目标效果了。
源码下载:Android Walker登录记住密码页面
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
以上是 Android Walker登录记住密码页面功能实现 的全部内容, 来源链接: utcz.com/p/241888.html