android 登录界面处理的几个细节

来源:互联网 发布:标签设计软件哪种好 编辑:程序博客网 时间:2024/06/04 18:32

         

    看到这个登录,相信大家都做过,也遇到过问题。现在我把觉得要处理的几个细节说出来。

   (1)当手机展示这个界面时,我们首先要判断的是,是否有网络。

   (2)怎么样记住账号?

   (3)当输入法出现时,是否让界面上移,是输入法不遮住输入框。

   (4)怎么通过异步加载来验证账号和密码?

    最后我说下,我这个只是粗糙的UI,通常我们要根据需求实现用户体验更好的布局和控件的。这点以后我想把我的想法和大家分享下。今天先说这4点吧。。  

 

    一、判断是否有网络这个大家搜一下资料就知道有很多的,我还是弱弱地写下我怎么实现的。

      1.首先看到网络,我们就该想到设置权限啦,大家都懂的

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

       然后我贴上核心代码吧: 


       判断没网络后,我们要展示提示信息了,这个方法各有千秋,我在自己的demo里写了一种简单的方法——通过dialog展示。

      2.怎么记住账号和密码呢??还有大家常见的导航界面,其实通常是通过SharedPreferences来处理的。

          通常我们在OnCreate()方法里加载保存的信息。

     

        然后监听CheckBox的状态来保存用户信息啦。

      

      isChecked参数:true:表示checkbox被选中    false:表示未被选中

    

   3.我们只需通过在AndroidManifest.xml里设置android:windowSoftInputMode=XXX来控制界面是否上移。

     没有设置时,当我们启动输入法时会发现很尴尬,输入法会遮住居中的输入框(我是通过G12测试的)

    

    我直接在application节点里设置的,适用于各个actvity。。设置前后大家最好用手机自己体验下区别。

    4.当我们点击登录按钮时,我们会将登录信息post到服务器,然后服务器返回信息(返回的信息格式可能是json,xml,简单数据类型,或者复合数据类型等等),通常需要我们 自己解析的。整个发送到返回需要一定时间的,如果我们将这个耗时操作放在actvity的主线程,很可能出现ANR(application not response),因此我们要开子线程来处理这些。android中有两种处理方式:handler和asynctask。

     我是通过handler来处理的。这边的核心代码我在demo已经写了,如果大家觉得对学习有帮助的话下载这个demo吧。。

      http://download.csdn.net/detail/xiana2012/4675438

   

   

   

原创粉丝点击