前言
本章内容是android.widget.DialerFilter,版本为Android 3.1 r1,翻译来自"cnmahj",欢迎大家访问他的博客:http://android.toolib.net/blog/,再次感谢"cnmahj"!欢迎你一起参与Android的中文翻译,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
DialerFilter
译者署名: cnmahj
译者链接:http://blog.toolib.net/cnmahj
版本:Android 3.1 r1
结构
继承关系
public static interface View.OnClickListner
android.view.View.OnClickListener
子类及间接子类
间接子类
CharacterPickerDialog, KeyboardView, QuickContactBadge
类概述
常量
public static final int DIGITS_AND_LETTERS
该模式包含两行。
常量值: 1 (0x00000001)
public static final int DIGITS_AND_LETTERS_NO_DIGITS
DIGITS_AND_LETTERS 模式开始后,过滤器移除了所有匹配的数字, 只剩字母行时的模式。
常量值: 2 (0x00000002)
public static final int DIGITS_AND_LETTERS_NO_LETTERS
DIGITS_AND_LETTERS 模式开始后,过滤器移除了所有匹配的字母, 只剩数字行时的模式。
常量值: 3 (0x00000003)
public static final int DIGITS_ONLY
该模式只有数字行。
常量值: 4 (0x00000004)
public static final int LETTERS_ONLY
该模式只有字母行。
常量值: 5 (0x00000005)
公共方法
public void append (String text)
public void clearText ()
清除数值和过滤器文本。
public CharSequence getDigits ()
public CharSequence getFilterText ()
public CharSequence getLetters ()
public int getMode ()
public boolean isQwertyKeyboard ()
public boolean onKeyDown (int keyCode, KeyEvent event)
KeyEvent.Callback.onKeyMultiple() 的默认实现. 如果视图可用并可按, 当按下 KEYCODE_DPAD_CENTER 或 KEYCODE_ENTER 时执行视图的按下事件.
参数
keyCode 表示按下的键的、在 KEYCODE_ENTER 中定义的键盘代码.
event KeyEvent 对象,定义了按钮动作.
返回值
如果处理了事件,返回真.如果允许下一个事件接受器处理该事件,可以返回假.
public boolean onKeyUp (int keyCode, KeyEvent event)
KeyEvent.Callback.onKeyMultiple() 的默认实现. 当释放 KEYCODE_DPAD_CENTER 或 KEYCODE_ENTER 时执行视图的单击事件.
参数
keyCode 表示按下的键的、在 KEYCODE_ENTER 中定义的键盘代码.
event KeyEvent 对象,定义了按钮动作.
返回值
如果处理了事件,返回真.如果允许下一个事件接受器处理该事件,可以返回假.
public void removeFilterWatcher (TextWatcher watcher)
public void setDigitsWatcher (TextWatcher watcher)
public void setFilterWatcher (TextWatcher watcher)
public void setLettersWatcher (TextWatcher watcher)
public void setMode (int newMode)
改变小部件的模式。
参数
newMode 变更的目标模式。
受保护方法
protected void onFinishInflate ()
根据 XML 生成视图工作完成.该函数在生成视图的最后调用,在所有子视图添加完之后。
即使子类覆盖了 onFinishInflate 方法,也应该调用父类的方法,使该方法得以执行。
protected void onFocusChanged (boolean focused, int direction, Rect previouslyFocusedRect)
如果有图标,只是在得到焦点时显示图标视图。
参数
focused 如果视图具有焦点,值为真;否则为假.
direction 当调用 requestFocus() 为该视图设置焦点时,该值为焦点移动的方向. 其值为 FOCUS_UP、FOCUS_DOWN、 FOCUS_LEFT 或者 FOCUS_RIGHT. 当使用无参数的 requestFocus() 时,可能无值.
previouslyFocusedRect 失去焦点的视图的矩形坐标,使用该视图的坐标系统.如果指定了, 它将传入可以知道焦点来自哪里的详细信息(作为对 direction 的补充). 否则,其值为 null。
protected void onModeChange (int oldMode, int newMode)
在模式变更后调用,为子类提供可以用于重新更改风格的等附加操作的机会。
补充
示例代码
<?xml version="1.0" encoding="utf-8"?>
<DialerFilter android:id="@+id/dialer_filter"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText android:id="@android:id/hint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"/>
<EditText android:id="@android:id/primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@android:id/hint"/>
</DialerFilter>
测试代码