Aim :
1. 用户名和密码使用EditText;
2. 所在地区使用Spinner控件,供用户选择所在的省份;
3. 出生日期:用户单击输入框时,弹出DatePickerDialog,将用户设置的日期显示在EditText中;
4. E-mail使用AutoCompleteTextView控件。
5. 当用户点击注册按钮时,弹出列表对话框,显示用户输入的信息,供用户进行确认。
Review :
DatePickerDialog : 日期选择对话框,相应的有 时间选择对话框TimePickerDialog , 用法:
1. 通过New关键字创建DatePickerDialog、TimePickerDialog实例,调用它们的show()方法即可将日期和时间选择对话框显示出来;
2. 为DatePickerDialog、TimePickerDialog绑定监听器,可以保证用户通过DatePickerDialog、TimePickerDialog设置时间时触发监听器,从而通过监听器来获取用户设置的事件;
AlertDialog : 可以生成各种内容的对话框,可分为4个区域:图标区、标题区、内容区、按钮区;
创建AlertDialog的步骤:
1. 创建AlertDialog对象;
2. 调用AlertDialog.Builder的setTitle()、setCustomTitle()、setIcon()、setMessage()、setItems()等方法设置标题、图标、对话框内容;
3. 调用AlertDialog.Builder的setPositiveButton()、setNegativeButton等方法添加多个按钮;
4. 调用create()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法将该对话框显示出来;
对话框内容使用有如下方法:
setMessage() : 设置对话内容为简单文本内容;
setItems() : 设置对话框内容为简单列表项;
setSingleChoiceItems() : 设置对话框内容为单选列表项
setMultiChoiceItems() : 设置对话框内容为多选列表项
setAdapter() : 设置对话框内容为自定义列表项
setView() : 设置对话框内容为自定义View
Structure:
主要还是MainActivity.java和activity_main.xml两个文件;
Code:
MainActivity.java
- package com.example.bestone.test4_2;
- import android.app.DatePickerDialog;
- import android.content.DialogInterface;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.AutoCompleteTextView;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.EditText;
- import android.widget.Spinner;
- import java.util.Calendar;
- public class MainActivity extends AppCompatActivity {
- private Spinner spinner;
- private EditText birthday;
- private AutoCompleteTextView email;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- spinner = (Spinner)findViewById(R.id.spinner); //获取界面布局中的Spinner组件
- String[] arr = { "北京", "浙江", "天津", "河南","山东","上海"};
- ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
- android.R.layout.simple_list_item_multiple_choice,arr
- );
- spinner.setAdapter(adapter);
- birthday = (EditText)findViewById(R.id.birthday); //为EidtText点击事件绑定监听器
- birthday.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Calendar c = Calendar.getInstance();
- new DatePickerDialog(MainActivity.this,
- new DatePickerDialog.OnDateSetListener(){
- @Override
- public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
- EditText show = (EditText)findViewById(R.id.birthday);
- show.setText(i+"年"+(i1+1)+"月"+i2+"日");
- }
- }
- ,c.get(Calendar.YEAR)
- ,c.get(Calendar.MONTH)
- ,c.get(Calendar.DAY_OF_MONTH)).show();
- }
- });
- email = (AutoCompleteTextView)findViewById(R.id.email);
- // String email = email.getText().toString(); //输入数字自动匹配邮箱后缀暂为解决,以后会补充
- String[] emailSufix = new String[]{"@outlook.com","@gmail.com"};
- ArrayAdapter<String> arr2 = new ArrayAdapter<>(this,
- android.R.layout.simple_dropdown_item_1line,emailSufix);
- email.setAdapter(arr2);
- Button bt = (Button)findViewById(R.id.bt);
- bt.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- simple(view);
- }
- });
- }
- public void simple(View source){
- EditText user = (EditText)findViewById(R.id.user);
- EditText birthday = (EditText)findViewById(R.id.birthday);
- AutoCompleteTextView email = (AutoCompleteTextView)findViewById(R.id.email);
- String users = user.getText().toString();
- String birthdays = birthday.getText().toString();
- String provinces = (String)spinner.getSelectedItem();
- String emails = email.getText().toString();
- AlertDialog.Builder builder = new AlertDialog.Builder(this) //创建
- .setTitle("请确认以下信息") //标题
- .setItems(new String[] {"用户名:"+users,"所在地区:"+provinces,"出生日期:"+birthdays,"Email:"+emails}, null); //对话框内容
- builder.setNegativeButton("确定", new DialogInterface.OnClickListener() { //按钮
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- }
- });
- builder.setPositiveButton("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- }
- }).create().show();
- }
- }
activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/activity_main"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context="com.example.bestone.test4_2.MainActivity">
- <TableRow>
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="用户名:"
- android:textSize="16sp"
- />
- <EditText
- android:id="@+id/user"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- />
- </TableRow>
- <TableRow>
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="密码:"
- android:textSize="16sp"
- />
- <EditText
- android:id="@+id/password"
- android:inputType="numberPassword"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- />
- </TableRow>
- <TableRow>
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="所在地区:"
- android:textSize="16sp"
- />
- <Spinner
- android:id="@+id/spinner"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- />
- </TableRow>
- <TableRow>
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="出生日期:"
- android:textSize="16sp"
- />
- <EditText
- android:id="@+id/birthday"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- />
- </TableRow>
- <TableRow>
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Email:"
- android:textSize="16sp"
- />
- <AutoCompleteTextView
- android:id="@+id/email"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:completionThreshold="1"
- />
- </TableRow>
- <Button
- android:id="@+id/bt"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="注册"
- />
- </TableLayout>
效果图: