Android入门实例三 注册界面的设计与实现

注册界面的设计与实现

1.简介

这次小实验通过RadioButton(单选按钮)CheckBox(复选框)等组件实现一些个人信息的录入,同时介绍了如何使用带图片的Toast反馈信息。

2.源码

2.1通过【File--->New-->Other-->Android-->Android Application Project】新建一个Android project,起个名字【Register

 

2.2在布局文件activity_main.xml里面编写我们的界面,代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.tonghua.register.MainActivity" >

 

    <TextView

        android:id="@+id/textView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="请输入你的用户名" />

 

    <EditText

        android:id="@+id/editText1"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_marginTop="16dp"

        android:ems="10" >

 

        <requestFocus

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" />

    EditText>

 

    <TextView

        android:id="@+id/textView2"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="请选择您的性别" />

 

    <RadioGroup

        android:id="@+id/radioGroup1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:orientation="horizontal" >

 

        <RadioButton

            android:id="@+id/maleButton"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="" />

 

        <RadioButton

            android:id="@+id/femaleButton"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="" />

 

        <RadioButton

            android:id="@+id/bothButton"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="双性" />

    RadioGroup>

 

    <TextView

        android:id="@+id/textView3"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="请输入你的爱好:" />

 

    <CheckBox

        android:id="@+id/singBox"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="唱歌" />

    <CheckBox

        android:id="@+id/loveBox"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="拍拖" />

    <CheckBox

        android:id="@+id/lolBox"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="撸啊撸" />

    <Button

        android:id="@+id/registerBtn"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="bottom|center_horizontal"

        android:text="注册" />

 

LinearLayout>

2.3MainActivity.java里面实现注册功能,代码如下:

3.package com.tonghua.datetime;

4.

5.import java.util.Calendar;

6.import java.util.Locale;

7.

8.import android.support.v7.app.ActionBarActivity;

9.import android.os.Bundle;

10.import android.view.KeyEvent;

11.import android.view.Menu;

12.import android.view.MenuItem;

13.import android.widget.DatePicker;

14.import android.widget.DatePicker.OnDateChangedListener;

15.import android.widget.TextView;

16.import android.widget.TimePicker;

17.import android.widget.Toast;

18.import android.widget.TimePicker.OnTimeChangedListener;

19.

20.public class MainActivity extends ActionBarActivity {

21.// 定义datepickertimepicker对应日期和时间组件

22.private DatePicker datePicker;

23.private TimePicker timePicker;

24.private TextView dateTV, timeTV;// 对应两个文本框,用于显示结果

25.private Calendar mCalendar;// 定义一个日历对象,用于设置地区

26.private int iYear, iMonth, iDay, iHour, iMinute;// 记录日期和时间

27.

28.@Override

29.protected void onCreate(Bundle savedInstanceState) {

30.super.onCreate(savedInstanceState);

31.setContentView(R.layout.activity_main);

32.// 使四个组件对象与对应的组件绑定

33.datePicker = (DatePicker) findViewById(R.id.datePicker1);

34.timePicker = (TimePicker) findViewById(R.id.timePicker1);

35.dateTV = (TextView) findViewById(R.id.dateTV);

36.timeTV = (TextView) findViewById(R.id.timeTV);

37.// 将当前日历设置为中国日历

38.mCalendar = Calendar.getInstance(Locale.CHINA);

39.// 获取当前的年、月、日、小时、分钟

40.iYear = mCalendar.get(Calendar.YEAR);

41.iMonth = mCalendar.get(Calendar.MONTH);

42.iDay = mCalendar.get(Calendar.DAY_OF_MONTH);

43.iHour = mCalendar.get(Calendar.HOUR_OF_DAY);

44.iMinute = mCalendar.get(Calendar.MINUTE);

45.

46.// 设置TimePicker组件支持24小时制

47.timePicker.setIs24HourView(true);

48.// 初始化DataPicker组件,同时制定监听器

49.datePicker.init(iYear, iMonth, iDay, new OnDateChangedListener() {

50.@Override

51.public void onDateChanged(DatePicker view, int year,

52.int monthOfYear, int dayOfMonth) {

53.iYear = year;

54.iMonth = monthOfYear + 1;// 因为1月在系统中的初始值为0,所以需要加1

55.iDay = dayOfMonth;

56.// TextView里面显示设置好的日期

57.dateTV.setText("您设置的日期是:" + iYear + "" + iMonth + "" + iDay

58.+ "");

59.

60.}

61.});

62.// TimePicker设置监听器

63.timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {

64.@Override

65.public void onTimeChanged(TimePicker arg0, int hourOfDay, int minute) {

66.// TODO Auto-generated method stub

67.iHour = hourOfDay;

68.iMinute = minute;

69.// TextView里面显示设置好的时间

70.timeTV.setText("您 设置的时间是:" + iHour + "" + iMinute + "");

71.}

72.});

73.}

74.

75.// 下面是连按返回键退出程序

76.private long exitTime = 0;

77.

78.// 使用exitTime记录点击返回键的时间

79.@Override

80.public boolean onKeyDown(int keyCode, KeyEvent event) {

81.// 键盘按键的点击事件

82.if (keyCode == KeyEvent.KEYCODE_BACK

83.&& event.getAction() == KeyEvent.ACTION_DOWN) {

84.// 动作为按下,对象是返回键

85.if ((System.currentTimeMillis() - exitTime) > 2000) {

86.// 这次点击的时间与上次点击的时间的差值大于2

87.Toast.makeText(getApplicationContext(), "再按一次退出程序",

88.Toast.LENGTH_SHORT).show();

89.// 提示“再按一次退出程序”

90.exitTime = System.currentTimeMillis();

91.// 刷新时间

92.} else {

93.// 如果联系两次点击的时间差小于2秒,退出程序

94.finish();

95.System.exit(0);

96.}

97.return true;

98.}

99.return super.onKeyDown(keyCode, event);

100.}

101.}

3.运行与调试,在用户名框里面输入您的姓名,在性别选项里面选择您的性别(单选),然后选择爱好(多选),最后点击注册按钮,会有有趣的事情发生。

 

 

4.小提示:

Toast组件是一种给用户提示信息的视图,该视图以浮与应用程序之上的形式呈现给用户,而且显示的时间有限,过一段时间会自动消失,并且即使用户同时输入信息也不会受到影响。

 

你可能感兴趣的:(Android入门实例)