UI Controls (输入控制)
1.UI Controls是什么?
UI Controls是一组与用户的输入相关的一些对象.
2.UI Controls 应用场合?
UI Controls 的应用场合与具体的UI Controls对象有关。
3.UI Controls 涉及到的相关对象?
1)Buttons (按钮)
a)Button
b)ImageButton
c)Switch(开关):checked
相关方法:
1)setOnCheckedChangeListener();
2)isChecked();
d)CheckBox(复选框):checked
常用属性:
android:checked="true"
相关方法:
1)getCheckedRadioButtonId(); //获得选中的Button
e)RadioButton(单选框):RadioGroup(线性布局的子类类型)
2)TextFields (文本域)
a)EditText(编辑框)
常用属性:
android:hint="input phone"
android:inputType="textPassword"
android:imeOptions="actionDone"
android:focusable="true"
相关方法:
1)setOnClickListener();
2)setOnTouchListener(一个EditText时使用)
3)setFocusable(true),设置对象可编辑
4)setFocusableInTouchMode(true);
5)setSelection()//设置光标位置
b)AutoCompleteTextView (自动完成编辑框)
相关方法:
1)setThreshold(1); 设置何时出现提示字符
c)SearchView(查询框,内置了一个AutoCompleteText)
相关方法:
1)setOnQueryTextListener();
2)onActionViewExpanded();//展开SearchView
3)getResources().getIdentifier("android:id/search_plate", null, getPackageName());//获得SearchView中的资源Id
4)layout.setBackgroundResource(); //设置LinearLayout的背景
5)adapter.getFilter()// 获得过滤器
.filter(newText);// 过滤listview中要显示的内容
3)Bars(条)
a)ProgressBar (进度条)
相关方法:
1)setMax(10);// 设置进度最大值
2)setProgress(count++);// 设置当前进度值
b)SeekBar(拖动条)
特殊属性:
android:thumb="@drawable/..."
相关方法:setOnSeekBarChangeListener();
c)RatingBar(评价条)
特殊属性:
android:numStars="5"
android:stepSize="0.5"
相关方法:
1)setOnRatingBarChangeListener();
2)setRating();
----------------------------------------
Input Controls FAQ?
1.Input Controls 组件的选择器如何设置?
1)background
2)textColor
3)thumbs (seekbar)
4).....
选择器的定义及访问
1)res/drawable/selector.xml
2)R.drawable.selector
在Selector中可以引入一些shape(图形)文件
1)res/drawable/shape.xml
2)R.drawable.shape
2.UI Controls 的事件处理?
1)软键盘事件
2)onChange,.....
----------------------------------------
Input Events (输入事件)
1.事件类型
1)onClick
2)onTouch
3)onChecked
4)onChange
5)onKey
6)......
2.事件传递机制(分发机制)
事件本身会存在一种传递机制,假如一个组件
上添加了多个事件,此事件会按照一定的顺序
依次处理(由分发机制决定),一般会先执行
onTouch事件,此事件是借助
dispatchTouchEvent方法的分发机制实现的。
3.事件冒泡机制
当android中的内层layout,外层layout对象
都添加了触摸事件时,当我们触摸内层容器
内层容器默认会将此事件传递到外层容器,
除非内层容器对事件进行了消费处理。
--------------------------------------
UI Components
1.UI Components 是什么?
1)是一些用于呈现view的一些组件
2)方便与用户进行更好的交互。
2.UI Components 的常用类型?
1)Menu (菜单)
2)ActionBar(动作栏)
3)Dialog(对话框)
4)Notification(通知)
5)Toast(通知)
6)Setting(设置,先不讲)
--------------------------------------
Menu (菜单)
1.选项菜单(Option Menu)
a)创建(重写onCreateOptionsMenu)
b)监听(重写onOptionsItemSelected)
item添加方式:
1)getMenuInflater().inflat(R.menu.main, menu);//采用xml方式添加item
2)menu.add(0, 300, 106, "item06");// 采用Java代码方式添加item
相关方法:
1)setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
2)getActionView()// 获得某个item中ActionView
2.上下文菜单(Context Menu)
a)注册(registerForContextMenu)
b)创建(onCreateContextMenu)
c)监听(onContextItemSelected)
3.弹出式菜单(PopuMenu):3.0api
1)创建(new PopuMenu(...))
2)监听(setOnMenuItemClickListener)
3)显示(show())
4.子菜单(以上每种菜单都有子菜单)
a)创建(重写onCreateOptionsMenu)
b)监听(重写onOptionsItemSelected)
item添加方式:
1)getMenuInflater().inflate(R.menu.main, menu);//采用xml方式添加item
2)menu.addSubMenu(1, 300, 500, "ItemB");// 采用Java代码方式添加item
--------------------------------------
ActionBar (动作栏)
1.ActionBar 是什么?
ActionBar 是android3.0推出的一个新的对象,此对象最主要的目的是在标题栏更好的为用户
呈现一些view组件,并实现与用户的交互,例如可以呈现Menu对象。
2.ActionBar 对象的应用?
1)获得ActionBar
a)getActionBar():前提是主题中需要包含actionBar
2)操作ActionBar
a)hide()
b)show()
c)setXXXX
3)修改ActionBar主题
a)在style.xml中定义主题
<style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>
<style name="MyActionBarStyle" parent=" @android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:background">@drawable/actionbar_background_01</item>
<item name="android:displayOptions">useLogo</item>
</style>
b)在activity中引入主题
4)相关方法
a)setDisplayHomeAsUpEnabled(true);// 设置显示action向左的箭头
b)setHomeButtonEnabled(true); //设置home button可点击
c)setDisplayShowTitleEnabled(false);// 隐藏标题
d)setDisplayShowHomeEnabled(false);//隐藏home图标
e)setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//设置actionBar的导航模式
f)addTab(ab.newTab().setText("Tab01").setTabListener(this));//添加tab导航
g)setLogo(R.drawable.home_left_coach);// 使用自己的logo
h)setDisplayUseLogoEnabled(true);
i)setDisplayShowCustomEnabled(true);// 设置actionBar显示自定义view
j)View.inflate(this, R.layout.title_item_1, null);//设置actionBar的自定义view
K)setCustomView(view,new ActionBar.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER));
----------------------------------------------------
对话框(Dialog)
1.Dialog 是什么?
1)Android 中的一个UI组件
2)Android 中的一个浮动窗口
2.Dialog 应用场合?
1)以浮动窗口形式呈现UI
2)以浮动窗口形式与用户交互
3.Dialog 对象的应用实现?
1)AlertDialog (提示对话框)
a)构建AlertDialog
AlertDialog.Builder builder=
new AlertDialog.Builder(this);
b)相关方法:
1)setIcon(R.drawable.ic_launcher);
2)setSingleChoiceItems(items, checkedItem, listener);
3)setMultiChoiceItems(items, checkedItems, listener);
4)setItems();
5)show();
6)create();
7)setTitle();
8)setMessage();
9)setPositiveButton("确定", null);
10)setNegativeButton("取消", null);
11)setNeutralButton("其它", null);
2)DatePickerDialog(日期对话框) (TimePickerDialog)
a)构建DatePickerDialog
new DatePickerDialog();
b)相关方法:
1)Calendar.getInstance();
2)get(Calendar.YEAR);
3)set(Calendar.YEAR, year); DateUtils.formatDateTime(MainActivity.this,
c.getTimeInMillis(),
DateUtils.FORMAT_SHOW_DATE
| DateUtils.FORMAT_SHOW_WEEKDAY
| DateUtils.FORMAT_SHOW_YEAR
| DateUtils.FORMAT_ABBREV_MONTH
| DateUtils.FORMAT_ABBREV_WEEKDAY);
3)ProgressDialog(进度对话框)
扩展:对话框形式的activity(主要是通过修改activity的主题)
----------------------------------------------------
Notification (通知)
1.Notification 是什么?
1)手机状态栏显示的一个对象
2)用于呈现View的一个对象
2.Notification 应用场合?
Notification一般应用于Android的服务端(service),
可以在service端创建,并发送,然后显示在状态栏。
例如:
1)软件更新的通知
2)短信的通知
3)未接电话的通知
4)播放音乐的通知
5)新闻头条通知
6)......
3.Notification 对象的应用?
1)构建Notification对象(借助builder对象)
a)Notification
b)NotificationCompat(兼容版本)
c)Builder
2)发送Notification对象(借助NotificationManager对象)
a)NofitificationManager
a.1)notify(int id,Notification ntf)
a.2)cancel(int id)
3)操作Notification对象(事件处理通过PendingIntent)
a)PendingIntent
4)定义Notification布局
a)RemoteViews
a.1)setXXXX
----------------------------------------------------
Toast(通知)
1.Toast 是什么?
1)Android 中的一个消息
2)用于呈现具体view信息
2.Toast 应用场合?
1)给出一个正确提示
2)给出一个错误提示
3.Toast 对象的应用?
1)创建
a)构造方法
b)静态方式(makeText)
2)设置(setXXX)
3)显示(show)
UI Components的同异性:
共性:这些对象不是view,但都可以某种表现方式呈现view
特性:构建方式,表现形式,监听方式