AutoCompleteTextView, Spinner, DatePicker等控件进行程序界面设计

Aim:

(1)居住地为AutoCompleteTextView,输入一个汉字后自动弹出选择;

(2)出生日期从DatePicker上选择,选择的结果显示在出生日期后面的文本框内;

(3)Email信箱:用户名由编辑框内输入,服务器通过Spinner选择;

(4)点击注册按钮后,将用户设置的信息显示在按钮下面的文本上,并弹出消息提示。


review:

AutoCompleteTextView : 自动完成文本框,从EditText派生而出,实际上也是一个文本编辑框,但它比普通逻辑框多了一个功能:当用户输入一定字符后,该文本框会自动显示一个下拉菜单(android:completionThreshold="n",即输入n个字符后提示),供用户选择,当用户选择了某个菜单项后,AutoCompleteTextView按用户选择自动填写该文本框;

DatePicker : 日期选择器,供用户选择日期YMD,相应的有时间选择器(TimePicker),由FrameLayout派生而来,DatePicker和TimePicker在Framelayout的基础上提供了一些方法来获取当前用户所选择的时间、日期;如果程序需要获取用户选择的日期、时间,则可以通过DatePicker添加OnDateChangedListener进行监听、为TimePicker添加OnTimerChangedListener进行监听来实现;

Spinner : 其实Spinner就是一个列表选择框(Android列表选择框不需要显示下拉列表,而是相当于弹出一个菜单供用户选择);

Toast : 提示框信息,有两个特点,1.提示信息不会获得焦点 2.提示信息过一段时间后会消失;

使用Toast生成提示框信息的步骤:

1. 调用Toast的构造器或makeText()静态方法创建一个Toast对象;

2. 调用Toast方法来设置该消息的对齐方式、页边距等;

3. 调用Toast的show()方法;


Structure:



MainActivity.java

package com.example.bestone.app1;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
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 android.widget.Toast;

import java.util.Calendar;


public class MainActivity extends AppCompatActivity {

    private Spinner spinner;
    private AutoCompleteTextView actv;
    private int year;
    private int month;
    private int day;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         String[] province = new String[]{
                "1北京", "2浙江", "3天津", "4河南","5山东","6上海",
                "1北京1", "2浙江2", "3天津3", "4河南4","5山东5","6上海6"
        };
        ArrayAdapter<String> pv = new ArrayAdapter<>(this,         //封装数组
                android.R.layout.simple_dropdown_item_1line,province);
        actv = (AutoCompleteTextView)findViewById(R.id.auto);      //自动补全组件
        actv.setAdapter(pv);


        DatePicker datePicker = (DatePicker)findViewById(R.id.datepicker);
        Calendar c = Calendar.getInstance();                //获取当前年月日
        year = c.get(Calendar.YEAR);
        month = c.get(Calendar.MONTH);
        day = c.get(Calendar.DAY_OF_MONTH);
        datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {  //初始化组件
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                MainActivity.this.year = year;
                MainActivity.this.month = monthOfYear;
                MainActivity.this.day = dayOfMonth;
                showDate(year, monthOfYear, dayOfMonth);
            }
        });



        spinner = (Spinner)findViewById(R.id.spinner);    //获取界面布局中的Spinner组件
        String[] arr = {"@outlook.com","@gmail.com"};
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_multiple_choice,arr
                );
        spinner.setAdapter(adapter);



        Button bt = (Button)findViewById(R.id.bt);                   //为按钮单击事件绑定事件监听器
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               String rs = actv.getText().toString();                //获取用户选择的residence
               EditText user = (EditText)findViewById(R.id.user);    //把用户输入的用户名与邮件地址拼接
               EditText date = (EditText)findViewById(R.id.show);    //获取选择的日期
                String dates = date.getText().toString();
                String email_1 = user.getText().toString();
                String email_2 = (String)spinner.getSelectedItem();
                String email = email_1 + email_2;
                //显示提示信息
                Toast.makeText(MainActivity.this, "居住地" + rs + "出生日期" + date + "邮箱" + email, Toast.LENGTH_SHORT).show();
            }
        });

    }

    private void showDate(int year, int month, int day){
        EditText show = (EditText) findViewById(R.id.show);
        show.setText(year + "年" + (month+1) + "月" + day + "日");
    }

}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
 >

<TableRow>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="居住地:"
            android:textSize="16sp"
            />
        <AutoCompleteTextView
            android:id="@+id/auto"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:completionHint="all of the data~~~~~~"
            android:completionThreshold="1"
            />
</TableRow>

<TableRow>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="出生日期:"
            android:textSize="16sp"
            />
        <EditText
            android:id="@+id/show"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
</TableRow>


        <DatePicker
            android:id="@+id/datepicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:startYear="1990"
            android:endYear="2017"
            android:calendarViewShown="false"
            android:spinnersShown="true"
            />
<TableRow>
        <EditText
            android:id="@+id/user"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
        <Spinner
            android:id="@+id/spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
</TableRow>
        <Button
            android:id="@+id/bt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="提交"
            />
</TableLayout>


effect diagram:



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值