文档章节

Android注册界面设计

天幕下的同龄人
 天幕下的同龄人
发布于 2014/10/13 23:24
字数 1344
阅读 84
收藏 1

一、建立一个Android项目 配置1 配置2 二、具体步骤 1、先编辑string.xml文件

<!-- lang: xml -->

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string name="hello">Hello World, LoginActivity!</string>
        <string name="app_name">用户注册</string>
        <string name="nameString">用户名:</string>
        <string name="namevalue_hint">请输入英文字母、数字</string>
        
        <string name="passString">密码:</string>
        <string name="passvalue_hint">请输入密码</string>
        
        <string name="ageString">年龄:</string>
        <string name="agevalue_hint">请输入年龄</string>
        
        <string name="sexString">性别:</string>
        <string name="Man">男</string>
        <string name="Woman">女</string>
        <string name="favoriteString">喜好:</string>
        <string name="cityString">城市:</string>
        
        <string name="Beijing">北京</string>
        <string name="ShangHai">上海</string>
        <string name="GuangZhou">广州</string>
        <string name="ShenZhen">深圳</string>
        
        <string name="pingpang">乒乓球</string>
        <string name="basketball">蓝球</string>
        <string name="football">足球</string>
        <string name="tennis">网球</string>
        <string name="registerbutton">注册</string>
    
    </resources>
    
    2、再在res/values/目录下新建一个arrays.xml文件
    
        <!-- lang: xml -->
        <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string-array name="cities">
            <item></item>
            <item>Beijing</item>
            <item>Shanghai</item>
            <item>Guangzhou</item>
            <item>Shenzhen</item>
            
        </string-array>
    
    </resources>

3、编辑main.xml文件

<!-- lang: xml -->

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <!-- 用户名 -->
    
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
    
            <TextView
                android:id="@+id/name"
                android:layout_width="@dimen/TextViewWidth"
                android:layout_height="wrap_content"
                android:text="@string/nameString"
                android:textSize="@dimen/fontsize" />
    
            <EditText
                android:id="@+id/namevalue"
                android:layout_width="@dimen/EditTextWidth"
                android:layout_height="wrap_content"
                android:hint="@string/namevalue_hint"
                android:layout_alignTop="@id/name"
                android:layout_toRightOf="@id/name"
                android:inputType="text" />
        </RelativeLayout>
    
        <!-- 密码 -->
    
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
    
            <TextView
                android:id="@+id/password"
                android:layout_width="@dimen/TextViewWidth"
                android:layout_height="wrap_content"
                android:text="@string/passString"
                android:textSize="@dimen/fontsize" />
    
            <EditText
                android:id="@+id/passvalue"
                android:layout_width="@dimen/EditTextWidth"
                android:layout_height="wrap_content"
                android:hint="@string/passvalue_hint"
                android:layout_alignTop="@id/password"
                android:layout_toRightOf="@id/password"
                android:inputType="textPassword" />
        </RelativeLayout>
    
        <!-- 年龄 -->
    
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
    
            <TextView
                android:id="@+id/ageLabel"
                android:layout_width="@dimen/TextViewWidth"
                android:layout_height="wrap_content"
                android:text="@string/ageString"
                android:textSize="@dimen/fontsize" />
    
            <EditText
                android:id="@+id/agevalue"
                android:layout_width="@dimen/EditTextWidth"
                android:layout_height="wrap_content"
                android:hint="@string/agevalue_hint"
                android:layout_alignTop="@id/ageLabel"
                android:layout_toRightOf="@id/ageLabel"
                android:inputType="number" />
        </RelativeLayout>
    
          <!-- 性别 -->
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
    
            <TextView
                android:id="@+id/sexLabel"
                android:layout_width="@dimen/TextViewWidth"
                android:layout_height="wrap_content"
                android:text="@string/sexString"
                android:textSize="@dimen/fontsize" />
    
            <RadioGroup
                android:id="@+id/sexMenu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/sexLabel"
                android:orientation="horizontal" >
    
    
                <RadioButton
                    android:id="@+id/radioMan"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/Man" />
                
                <RadioButton
                    android:id="@+id/radioWoman"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="30dp"
                    android:text="@string/Woman" />
            </RadioGroup>
        </RelativeLayout>
        
        <!-- 爱好 -->
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
    
            <TextView
                android:id="@+id/favoriteLabel"
                android:layout_width="@dimen/TextViewWidth"
                android:layout_height="wrap_content"
                android:text="@string/favoriteString"
                android:textSize="@dimen/fontsize" />
    
            <CheckBox
                android:id="@+id/checkboxpingpang"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/favoriteLabel"
                android:text="@string/pingpang" />
    
            <CheckBox
                android:id="@+id/checkboxfootball"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/checkboxpingpang"
                android:text="@string/football" />
    
            <CheckBox
                android:id="@+id/checkboxbasketball"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@id/checkboxpingpang"
                android:layout_below="@id/checkboxpingpang"
                android:text="@string/basketball" />
    
            <CheckBox
                android:id="@+id/checkboxtennis"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@id/checkboxfootball"
                android:layout_below="@id/checkboxfootball"
                android:layout_toRightOf="@id/checkboxbasketball"
                android:text="@string/tennis" />
        </RelativeLayout>
    
        <!-- 城市 -->
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
    
            <TextView
                android:id="@+id/city"
                android:layout_width="@dimen/TextViewWidth"
                android:layout_height="wrap_content"
                android:text="@string/cityString"
                android:textSize="@dimen/fontsize" />
            <Spinner
                android:id="@+id/cityItems" 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/city"/>
            
        </RelativeLayout>
        
        <!-- 注册 -->
        <Button 
            android:id="@+id/registerButton"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/registerbutton"/>
        
    </LinearLayout>

4、编辑LoginActivity.java文件 有两种方法使用字符串数组 ① 在LoginActivity.java的onCreate()方法开头定义一个静态常量字符数组,文中注释的部分 ② 把字符串定义在arrays.xml文件中

<!-- lang: java -->

    package com.sharpandroid.userlogin;
    import java.util.ArrayList;
    import java.util.List;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.content.res.Resources;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Spinner;
    public class LoginActivity extends Activity
    {
     /** Called when the activity is first created. */
     // 定义静态常量字符数组
    // private static final String[] cities =
    //  { "", 
    //   "北京",
    //   "上海",
    //   "广州",
    //   "深圳"
    //  };
     
     
     // 定义控件资源
     private EditText name, age, passwd;
     private Button regButton;
     private RadioGroup sexRadioGroup;
     private CheckBox basketball, football, pingpang, tennis;
     private Spinner cityItem;
     private boolean flag = true;
     private List<CheckBox> favorities;
     @Override
     public void onCreate(Bundle savedInstanceState)
     {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      // 定义一个ArrayList,用于存放所有的CheckBox
      favorities = new ArrayList<CheckBox>();
      // 获取控件资源
      name = (EditText) findViewById(R.id.namevalue);
      age = (EditText) findViewById(R.id.agevalue);
      passwd = (EditText) findViewById(R.id.passvalue);
      regButton = (Button) findViewById(R.id.registerButton);
      cityItem = (Spinner) findViewById(R.id.cityItems);
      sexRadioGroup = (RadioGroup) findViewById(R.id.sexMenu);
      basketball = (CheckBox) findViewById(R.id.checkboxbasketball);
      football = (CheckBox) findViewById(R.id.checkboxfootball);
      pingpang = (CheckBox) findViewById(R.id.checkboxpingpang);
      tennis = (CheckBox) findViewById(R.id.checkboxtennis);
        
      // 将多选框添加到List中
      favorities.add(basketball);
      favorities.add(football);
      favorities.add(pingpang);
      favorities.add(tennis);
      // 创建一个数组型适配器
      // 用静态常量字符数组时,用这种方法
    //  ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    //    LoginActivity.this, android.R.layout.simple_spinner_item, cities);
      
      // 用资源文件中的字符数值时,用这种方法
      ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, R.array.cities, android.R.layout.simple_spinner_item);
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      cityItem.setAdapter(adapter);
      regButton.setOnClickListener(new View.OnClickListener()
      {
       @Override
       public void onClick(View v)
       {
        // TODO Auto-generated method stub
        flag = addUser();
        if (flag)
        {
         new AlertDialog.Builder(LoginActivity.this)
           .setTitle("请确认信息")
           .setCancelable(false)
           .setMessage(
             "你的信息如下:" + "\n" + "姓名:"
               + name.getText().toString() + "\n"
               + "年龄:" + age.getText().toString()
               + "\n" + "性别:" + getSex() + "\n"
               + "爱好:" + getFavorite() + "\n"
               + "城市:" + getCity() + "\n")
           .setPositiveButton("确定",
             new DialogInterface.OnClickListener()
             {
              @Override
              public void onClick(
                DialogInterface dialog,
                int which)
              {
               // TODO Auto-generated method stub
               ProgressDialog.show(
                 LoginActivity.this, "注册中",
                 "请等待......");
              }
             })
           .setNegativeButton("修改",
             new DialogInterface.OnClickListener()
             {
              @Override
              public void onClick(
                DialogInterface dialog,
                int which)
              {
               // TODO Auto-generated method stub
               dialog.cancel();
              }
             })
           .show();
        }
       }
      });
     }
     /*
      * ==========================================================================
      */
     // 获取城市
     private String getCity()
     {
      
      // 引用资源文件中的字符数组时用这种方法
      Resources res = getResources();
      String[] cities = res.getStringArray(R.array.cities);
      return cities[cityItem.getSelectedItemPosition()];
      
      // return cities[cityItem.getSelectedItemPosition()];  // 用静态字符数组实现时,用这种方法
     }
     /*
      * ==========================================================================
      * ==================
      */
     // 获取爱好
     private String getFavorite()
     {
      String favString = "";
      for (CheckBox cb : favorities)
      {
       if (cb.isChecked())
       {
        favString += cb.getText().toString();
        favString += ",";
       }
      }
      if (favString != "")
      {
       favString = favString.substring(0, favString.length() - 1);
      } else
      {
       favString = "你没有选择爱好!";
      }
      return favString;
     }
     /*
      * ==========================================================================
      * ==================
      */
     // 获取性别
     private String getSex()
     {
      RadioButton mRadio = (RadioButton) findViewById(sexRadioGroup
        .getCheckedRadioButtonId());
      return mRadio.getText().toString();
     }
     /*
      * ==========================================================================
      * ==================
      */
     // 添加用户
     public boolean addUser()
     {
      boolean nameflag = true;
      boolean ageflag = true;
      boolean passwdflag = true;
      // 判断姓名是否合法:输入的字符串姓名去掉空格后长度不能为0
      if (name.getText().toString().trim().length() == 0)
      {
       // name.setError("用户名不能为空!");
       nameflag = false;
      }
      if (age.getText().toString().length() == 0)
      {
       // age.setError("年龄不能为空!");
       ageflag = false;
      }
      if (passwd.getText().toString().length() == 0)
      {
       // passwd.setError("密码不能为空!");
       passwdflag = false;
      }
      if (nameflag && ageflag && passwdflag)
      {
       return true;
      } else
      {
       if (!nameflag)
        name.setError("用户名不能为空!");
       if (!ageflag)
        age.setError("年龄不能为空!");
       if (!passwdflag)
        passwd.setError("密码不能为空!");
       return false;
      }
     }
    }

​三、运行界面 运行界面

© 著作权归作者所有

共有 人打赏支持
天幕下的同龄人
粉丝 0
博文 1
码字总数 1344
作品 0
南京
毕业设计3(研究android中的action)

下午在设计android的一个登陆的activity时,遇到这样的困惑,对于android来说一个页面就是一个activity,而为了能够在一个app中使用这个“界面“(也就是activity,因为你设计了界面肯定是为...

土匪强
2012/01/23
0
2
[Android]开源中国源码分析——Activity

开源中国android版主要有3类activity,一个是启动界面Activity,一个是主界面Activity,其他作为一类是详细页面Activity。 1、启动界面Activity为AppStart.java类。 它在net.oschina.app目录...

亭子happy
2012/09/11
0
0
转换 iOS 用户界面到 Android 的 5 大要诀

转换 iOS 用户界面到 Android 的 5 大要诀 2011-08-09 17:47 by 资深编辑wangguo评论(1)有1640人浏览 androidiOSUI <> 猎头职位:北京:ITeye网站诚聘产品交互设计 目前许多公司都正将他们的i...

冯京宝
2012/06/17
0
0
Sencha Touch 程序设计之 Android 平台 Back 按键处理

用 Sencha Touch 结合PhoneGap设计本地APP,免不了要分别处理android平台和iphone平台,两个平台的最大区别之一就是back键的处理。iphone平台没有back按键,只有home按键,按下该键的话程序会...

罗盛力
2012/11/01
0
0
浅谈Activity,Fragment模块化封装

欢迎大家访问我的博客:博客地址 概述 继承关系 这里的继承关系大家肯定十分熟悉了,这里贴出的是v4包中fragment,可以看出fragment是直接继承于object的,与四大组件没有任何关系。 两者之间...

stone_zhu
06/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修...

架构师springboot
11分钟前
0
0
分布式事务,原来可以这么玩?

多个数据要同时操作,如何保证数据的完整性,以及一致性? 答 : 事务 ,是常见的做法。 举个栗子: 用户下了一个订单,需要修改 余额表 , 订单 表 , 流水 表 ,于是会有类似的伪代码: st...

微笑向暖wx
13分钟前
0
0
IE6兼容PNG32图片显示PNG8图片

IE6并不是不支持PNG图片,只是不支持半透明通道。 是支持PNG8色表引索全透明的。 以往都是通过滤镜或统统使用PNG8实现兼容。 但是我发现twitter的png图标可以在chrome中显示png32,在IE6显示...

linsk1998
25分钟前
0
0
linux运维需要掌握的基础知识

踏入linux运维工程师这一职业,其实有很多工具技能需要掌握,下面我来给大家一一介绍。 1、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些...

linuxprobe16
26分钟前
0
0
《netty入门与实战》笔记-03:数据传输载体 ByteBuf 介绍

ByteBuf结构 首先,我们先来了解一下 ByteBuf 的结构 以上就是一个 ByteBuf 的结构图,从上面这幅图可以看到: ByteBuf 是一个字节容器,容器里面的的数据分为三个部分,第一个部分是已经丢弃...

Funcy1122
59分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部