用法较为简单:
Toast.makeText(Context,String tip,Toast.LENGTH_SHORT/LONG).show();
二、CalendarView 日历视图
可用于显示和选择日期。若希望监控该组件的日期改变,可调用CalendarView的setOnDateChangeListener()方法为该组件的点击事件添加事件监听器。
日期改变的事件监听器:
CalendarView cv = (CalendarView)findViewById(R.id.calendarView); // 为CalendarView组件的日期改变事件添加事件监听器 cv.setOnDateChangeListener(new OnDateChangeListener() { @Override public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { // 使用Toast显示用户选择的日期 Toast.makeText(CalendarViewTest.this, "你选择的日期是" + year + "年" + month + "月" + dayOfMonth + "日" , Toast.LENGTH_SHORT).show(); } });
三、日期和时间选择器
DatePicker供用户选择日期,TimerPicker则供用户选择时间。
同理,如果需要监听用户选择的日期,可为DatePicker添加OnDateChangedListener,为TimerPicker添加OnTimerChangedListener来实现。
定义DatePicker和TimerPicker:
初始化DatePicker TimePicker组件并同时指定监听器。
// 初始化DatePicker组件,初始化时指定监听器 datePicker.init(year, month, day, new OnDateChangedListener() { @Override public void onDateChanged(DatePicker arg0, int year , int month, int day) { ChooseDate.this.year = year; ChooseDate.this.month = month; ChooseDate.this.day = day; // 显示当前日期、时间 showDate(year, month, day, hour, minute); } }); // 为TimePicker指定监听器 timePicker.setOnTimeChangedListener(new OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view , int hourOfDay, int minute) { ChooseDate.this.hour = hourOfDay; ChooseDate.this.minute = minute; // 显示当前日期、时间 showDate(year, month, day, hour, minute); } });
四、数值选择器 NumberPicker
常见方法:
NumberPicker np = (NumberPicker) findViewById(R.id.np); // 设置np1的最小值和最大值 np.setMinValue(10); np.setMaxValue(50); // 设置np1的当前值 np.setValue(minPrice); np.setOnValueChangedListener(new OnValueChangeListener() { // 当NumberPicker的值发生改变时,将会激发该方法 @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { minPrice = newVal; showSelectedPrice(); } });
五、SearchView 搜索框
让用户在文本框内输入文字,并允许通过监听器监听用户输入。当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索。
如果为SearchView增加一个配套的ListView,则可以为SearchView增加自动填充的功能。
搜索框的常用方法举例如下(所在类必须implements SearchView.OnQueryTextListener):
ListView lv = (ListView) findViewById(R.id.lv); lv.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mStrings)); lv.setTextFilterEnabled(true); SearchView sv = (SearchView) findViewById(R.id.sv); // 设置该SearchView默认是否自动缩小为图标 sv.setIconifiedByDefault(false); // 为该SearchView组件设置事件监听器 sv.setOnQueryTextListener(this); // 设置该SearchView显示搜索按钮 sv.setSubmitButtonEnabled(true); // 设置该SearchView内默认显示的提示文本 sv.setQueryHint("查找");
当用户输入字符时的监听:
// 用户输入字符时激发该方法 @Override public boolean onQueryTextChange(String newText) { if (TextUtils.isEmpty(newText)) { // 清除ListView的过滤 lv.clearTextFilter(); } else { // 使用用户输入的内容对ListView的列表项进行过滤 lv.setFilterText(newText); } return true; }
当用户单击搜索按钮时触发的方法:
// 单击搜索按钮时激发该方法 @Override public boolean onQueryTextSubmit(String query) { // 实际应用中应该在该方法内执行实际查询 // 此处仅使用Toast显示用户输入的查询内容 Toast.makeText(this, "您的选择是:" + query , Toast.LENGTH_SHORT).show(); return false; }
六、TabHost 选项卡
方便地在窗口上放置多个标签页(如微信界面包含微信、通讯录发现等),它是一个简单的容器,提供了如下方法来创建和添加选项卡:
newTabSpec(Stringb tag):创建选项卡
addTab(TabHost.TabSpec tabSpec):添加选项卡
与TabHost结合使用的组件:
TabWidget:代表选项卡的标签页
TabSpec:代表选项卡的一个Tab页面。
布局文件示例:
创建过程:
// 获取该Activity里面的TabHost组件 TabHost tabHost = getTabHost(); // 创建第一个Tab页 TabSpec tab1 = tabHost.newTabSpec("tab1") .setIndicator("微信") // 设置标题 .setContent(R.id.tab01); //设置内容 // 添加第一个标签页 tabHost.addTab(tab1); TabSpec tab2 = tabHost.newTabSpec("tab2") // 在标签标题上放置图标 .setIndicator("通讯录", getResources() .getDrawable(R.drawable.ic_launcher)) .setContent(R.id.tab02); // 添加第二个标签页 tabHost.addTab(tab2); TabSpec tab3 = tabHost.newTabSpec("tab3") .setIndicator("发现") .setContent(R.id.tab03); // 添加第三个标签页 tabHost.addTab(tab3);