zoukankan      html  css  js  c++  java
  • .Net程序员安卓学习之路1:登陆界面

    任何编程学习起步均是HelloWorld,作为稍有>net编程经验的我们来说就跳过这步吧,咱们且从简单登录界面开始。先看看效果:

    wpsC63F.tmp

    一、准备知识:

    1. 安卓环境:安装好JDK,直接去官网下载ADT-bundle集成包后更新即可使用。

    2. 项目目录:一张图说明一切
    wpsC650.tmp

    二、页面布局:

    还是一幅图说明一切

    wpsC651.tmp

    那么这个界面的布局如何呢?

    <LinearLayout >最外边的DIV,用的是线性布局,方向是垂直
    
        <TextView/>就是上图“初始用户名。。。”这几个字所在Lable
    
        <LinearLayout >里面的DIV,水平布局
            <TextView/>用户名Lable
            <EditText/>用户名TextBox
        </LinearLayout>
    
        <LinearLayout>里面的DIV,水平布局
            <TextView/>密码Lable
            <EditText/>密码TextBox
        </LinearLayout>
    
        <Button/>登录按钮
    
    </LinearLayout>

    上图一看,就会一半,下来一个一个看:

    1. 最外层DIV:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" android:layout_margin="5dip" >

    定义宽高的停靠方式,有

    fill_parent、match_parent:是一样的,为了兼容低版本,建议使用fill_parent

    设置布局/控件为fill_parent将强制性让它布满整个屏幕或填满父控件的空白

    wrap_content:被内容撑大,刚好能显示下内容为止

    Orientation:排列方式,vertical垂直,默认是HORIZONTAL水平

    2. 文本框:

    <TextView
    android:id="@+id/lbl_LoginPass"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/lbl_LoginPass_Text"
    android:textSize="15.0sp" />

    这里出现了两个未知属性:

    @+id/lbl_LoginPass和@string/lbl_LoginPass_Text

    其实完全可以直接写:

    android:text="用户名"

    系统会提示这是硬编码,建议改写(汗,写了这么多年硬编码),他意思是这里仅仅引用字典中一个变量的名称,具体的值在字典中去维护,那么字典在哪里呢?

    Res/Values/String.xml中维护了这个字典:

    <resources>
        <string name="app_name">登录DEMO</string>
        <string name="action_settings">Settings</string>
        <string name="lbl_LoginName">用户名:</string>
        <string name="lbl_LoginPass_Text">密    码:</string>
        <string name="btn_login">开始登陆</string>
    </resources>

    这里编码规范得注意一下了:假如控件ID为lbl_LoginPass,则他的字典名应该为lbl_LoginPass_Text为了防止多个页面的字典名重复建议最好加上页面前缀,如Login_lbl_LoginPass_Text

    完整代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" android:layout_margin="5dip" >
                <TextView
                    android:id="@+id/form_title"
                    android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                    android:text="初始用户名和密码都是123" />
            <LinearLayout
            android:id="@+id/layout_login_name"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5.0dip"
            android:layout_marginTop="10.0dip"
            android:orientation="horizontal" >
                <TextView
                    android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                    android:text="@string/lbl_LoginName" />
                <EditText
                    android:id="@+id/txt_login_name"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:textSize="15.0sp" />
            </LinearLayout>
    
            
            <LinearLayout
            android:id="@+id/login_pwd_layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/layout_login_name"
            android:layout_centerHorizontal="true"
            android:layout_margin="5.0dip"
            android:orientation="horizontal" >
                <TextView
                    android:id="@+id/login_pass_edit"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/lbl_LoginPass"
                    android:textSize="15.0sp" />
    
                <EditText
                    android:id="@+id/txt_login_pwd"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:password="true"
                    android:textSize="15.0sp" />
                </LinearLayout>
                
               <Button
            android:id="@+id/btn_login"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:onClick="btn_click"
            android:text="登陆" />
    </LinearLayout>

    3. 页面后台
    打开页面对应的后台代码:MainActivity.java

    手动实现按钮的点击事件:

        public void btn_click(View v)
        {
            TextView lblInfo=(TextView)findViewById(R.id.form_title);
            
            EditText txt_login_name=(EditText)findViewById(R.id.txt_login_name);
            EditText txt_login_pass=(EditText)findViewById(R.id.txt_login_pwd);
            String loginName=txt_login_name.getText().toString().trim();
            String loginPass=txt_login_pass.getText().toString().trim();
            if(loginPass.equals("123")&&loginName.equals("123"))
            {
                lblInfo.setText("登录成功!");
            }
            else
            {
                lblInfo.setText("登录失败!");
            }
            
        }

    其实这些倒没啥说的一看名字就知道啥意思。

    wpsC661.tmp

    wpsC662.tmp

  • 相关阅读:
    ansible变量
    nginx连接php测试
    redis发布订阅
    堡垒机实例以及数据库操作
    nginx简介,使用
    protobuf
    go NSQ
    go mod
    GIT版本管理工具教程
    linux命令查询网站
  • 原文地址:https://www.cnblogs.com/madyina/p/4280338.html
Copyright © 2011-2022 走看看