Android开发——记账App开发项目分享(一)之用户登录
一、题外话:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、虚拟主机、营销软件、网站建设、峡江网站维护、网站推广。
本人java基础很一般,学java的时候就写了个notepad的demo,为了顺应时代的发展在去年10月份开始学习android,到现在中间渐渐续续的持续了将近5个月,刚开始我也是下了一堆android的视频,很可惜只看了前2章老罗的视频,工作的人了没那么大的耐心和时间慢慢看下去,依照视频和网上资料把android的开发环境搭起来了,android SDK+eclipse ,中间也尝试了使用android studio ,但是一旦出了问题,查找的资料相对Eclipse要少很多,所以对于初学者建议还是用Eclipse~没有多少基础,也不想慢慢看视频,直接就进入实操,期间困难在所难免,但坚持下来收获也是非常明显的了,现在我就分享下整个开发过程,当然也会包括代码分享~让其他正在步入android门槛的童鞋可以有个借鉴,减少弯路~
二、进入正题:
记账应用的开发涉及绝大多数android的UI和sqlite数据库等操作,很适合作为初学者练手,下面是我最开始的设计思路:
后面在开发过程中有修改,还是直接来干货,我就按照我的开发顺序来依次介绍,首先是登录界面的功能:UI中运用了LinearLayout+RelativeLayout组合布局的使用,期间有各种属性的使用,写一个这样的界面就可以了解很多UI的属性了。
效果如下图:
xml源码:
" "
程序代码:
由于这里面程序代码无非就是一些判断控制,这里就只上传保存按钮的代码……
btnlogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (uname!="" && uname!=null) { if (rememberPwd.equals("true")) { if (evUsername.getText().toString().trim().length()>0) { if (evUsername.getText().toString().trim().equals(uname)) { Toast.makeText(Login.this,"登录成功",Toast.LENGTH_SHORT).show(); Intent intent =new Intent(Login.this,MainActivity.class); startActivity(intent); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); finish(); ((NotifyApplication)getApplication()).intLoginStatus=1;//登录激活 ((NotifyApplication)getApplication()).strUsername = uname; }else { Toast.makeText(Login.this,"用户名不正确",Toast.LENGTH_SHORT).show(); evUsername.setText(""); evUsername.requestFocus(); } }else { Toast.makeText(Login.this,"用户名不能为空",Toast.LENGTH_SHORT).show(); evUsername.requestFocus(); } }else { if (evUsername.getText().toString().trim().length()>0) { if (evPwd.getText().toString().trim().length()>5) { if (evUsername.getText().toString().trim().equals(uname)) { if (evPwd.getText().toString().equals(pwd)) { Toast.makeText(Login.this,"登录成功",Toast.LENGTH_SHORT).show(); Intent intent =new Intent(Login.this,MainActivity.class); startActivity(intent); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); finish(); ((NotifyApplication)getApplication()).intLoginStatus=1;//登录激活 ((NotifyApplication)getApplication()).strUsername = uname; }else { Toast.makeText(Login.this,"密码不正确",Toast.LENGTH_SHORT).show(); evPwd.setText(""); evPwd.requestFocus(); } }else { Toast.makeText(Login.this,"用户名不正确",Toast.LENGTH_SHORT).show(); evUsername.setText(""); evUsername.requestFocus(); } }else { Toast.makeText(Login.this,"密码长度至少为6",Toast.LENGTH_SHORT).show(); evPwd.setText(""); evPwd.requestFocus(); } }else { Toast.makeText(Login.this,"用户名不能为空",Toast.LENGTH_SHORT).show(); evUsername.requestFocus(); } } }else { Toast.makeText(Login.this,"您还未注册,请点击下方注册",Toast.LENGTH_SHORT).show(); } } });
在现在看来这个页面有难度的地方,就是“注册”标签的点击链接功能的实现,需要用到SpannableString 这个类,实现该处具体源码如下:
txtRegisterLink=(TextView)findViewById(R.id.txtRegisterLink); String str2="注册"; SpannableString spans = new SpannableString(str2); //点击文本链接事件 spans.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { if (uname==null || uname=="") { Intent intent = new Intent(Login.this, Register.class); startActivity(intent); finish(); }else{ Toast.makeText(Login.this,"您已注册,不能重复注册",Toast.LENGTH_SHORT).show(); } } }, 0, str2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); txtRegisterLink.setText(spans);
接着写~~~
有用户登录界面,当然就需要用户注册界面了,上面也有贴出在用户登录界面通过link调转到注册界面的代码,下面就直接说注册界面的功能点:
效果图:
注册界面的xml代码:
注册界面的UI很简单了,还是基础控件的使用,当然UI上面的实现方式很多,初学时根据自己的需要和熟悉程度选择就好……
网站标题:Android开发——记账App开发项目分享(一)之用户登录
文章来源:http://pwwzsj.com/article/gihhsi.html