android默认焦点设置的方法
在使用到文本框(EditText)来进行数据录入的时候,有时默认焦点会聚集到不想聚集的控件上,也就会需要对输入法进行一些控制。先看下LAYOUT定义文件中的和输入法有关的属性:
属性名说明
android:inputType指定输入法的类型,int类型,可以用|选择多个。取值可以参考:android.text.InputType类。取值包括:text, textUri, phone,number,等。android:imeOptions指定输入法窗口中的回车键的功能,可选值为normal, actionNext,actionDone,actionSearch等。部分输入法对此的支持可能不够好。
下面的LAYOUT定义文件举了一些例子说明inputType和imeOptions的使用。<EditText android:id="@+id/textNormal"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Normal text"android:inputType="text"android:imeOptions="actionNext"/><EditText android:id="@+id/textInteger"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Integer only"android:inputType="number"android:imeOptions="actionNext"/><EditText android:id="@+id/textPhone"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Phone number"android:inputType="phone"android:imeOptions="actionNext"/><EditText android:id="@+id/textEmail"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Email"android:imeOptions="actionSend"android:inputType="textEmailAddress"/><EditText android:id="@+id/textSite"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Web Site"android:imeOptions="actionDone"android:inputType="textUri"/>
有时候也要对intent的默认焦点进行设置,不至于在intent跳转的时候默认焦点(光标)在EditText上,导致进入intent就打开输入法,影响界面美观。
默认焦点的顺序是:从上倒下 从左到右第一个可以输入的控件作为焦点可以使用:button.setFocusable(true);button.requestFocus();button.setFocusableInTouchMode(true);
另外,在andorid布局上,可以设置这类看不到的布局控件来设置距离
<LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"/>
在使用到文本框(EditText)来进行数据录入的时候,有时默认焦点会聚集到不想聚集的控件上,也就会需要对输入法进行一些控制。先看下LAYOUT定义文件中的和输入法有关的属性:
属性名说明
android:inputType指定输入法的类型,int类型,可以用|选择多个。取值可以参考:android.text.InputType类。取值包括:text, textUri, phone,number,等。android:imeOptions指定输入法窗口中的回车键的功能,可选值为normal, actionNext,actionDone,actionSearch等。部分输入法对此的支持可能不够好。
下面的LAYOUT定义文件举了一些例子说明inputType和imeOptions的使用。<EditText android:id="@+id/textNormal"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Normal text"android:inputType="text"android:imeOptions="actionNext"/><EditText android:id="@+id/textInteger"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Integer only"android:inputType="number"android:imeOptions="actionNext"/><EditText android:id="@+id/textPhone"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Phone number"android:inputType="phone"android:imeOptions="actionNext"/><EditText android:id="@+id/textEmail"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Email"android:imeOptions="actionSend"android:inputType="textEmailAddress"/><EditText android:id="@+id/textSite"android:layout_width="fill_parent" android:layout_height="wrap_content"android:hint="Web Site"android:imeOptions="actionDone"android:inputType="textUri"/>
有时候也要对intent的默认焦点进行设置,不至于在intent跳转的时候默认焦点(光标)在EditText上,导致进入intent就打开输入法,影响界面美观。
默认焦点的顺序是:从上倒下 从左到右第一个可以输入的控件作为焦点可以使用:button.setFocusable(true);button.requestFocus();button.setFocusableInTouchMode(true);
另外,在andorid布局上,可以设置这类看不到的布局控件来设置距离
<LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"/>