AutoCompleteTextView、Spinner、ListView、Dialog等高级组件练习

来源:互联网 发布:药智网红外光谱数据库 编辑:程序博客网 时间:2024/06/06 17:40

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>

效果图:





0 0
原创粉丝点击