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>