Android小程序-Walker注册页面(六)
16lz
2021-01-26
目标效果:
这一次修改的不多,添加了点击用户登录的跳转,登录页面的记住密码,和程序运行一次后,不进入导航页面的功能。
项目压缩包:http://pan.baidu.com/s/1qYcOyio
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;@Overrideprotected 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() {@Overridepublic 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() {@Overridepublic 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@Overrideprotected 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() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationRepeat(Animation animation) {}@Overridepublic 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值为falseeditor.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;@Overrideprotected 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);//将获取到的值设置为textetPass.setText(userPass);}}/*点击事件保存数据*/@Overridepublic 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简单登陆页面
- 【Android】获取应用程序(包)的大小-----PackageManager的使用(
- 检查网络连接状况
- 【Android】 在Andorid中解析Json数据示例
- Android(安卓)SurviceView的触控和轨迹球事件
- 获取Android所有的应用和包名 点击跳转已安装应用
- Android(安卓)kotlin 之 Fragment获取控件
- Android2.1读取进程流量
- 深入学习百度地图Android(安卓)SDK v4.0.0【第九关】检索功能