2013-01-14 40 views
2

我期待在Android.A中实现电话垫和键盘。按照我的要求,当选择EditText时,应显示默认电话垫。但用户也必须能够输入字母。请给我一个方法来实现这一点。电话垫和QWERTY键盘在Android中

<EditText 
       android:id="@+id/editTextref1" 
       android:layout_width="210dp" 
       android:layout_height="45dp" 
       android:layout_alignParentRight="true" 
       android:layout_marginTop="10dp" 
       android:ellipsize="start" 
       android:hint="@string/custom1" 
       android:imeOptions="actionNext|actionDone" 
       android:inputType="text" 
       android:nextFocusDown="@+id/editTextref2" 
       android:shadowDy="10" 
       android:textColor="#383838" 
       android:textSize="14sp" 
       android:textStyle="bold" 
       android:maxLength="15" 
       android:typeface="serif" /> 

回答

1

我想作出一个假设,不可能以简单和优雅的方式做到这一点。问题在于你输入的类型是InputType.TYPE_CLASS_TEXT,并且它不能更改为InputType.TYPE_CLASS_NUMBER,因为你还需要输入字母。

问题是输入法会检查输入的类型,并根据字段输入类型的类型为您提供数字或字母表的相应键盘。如果您要求输入法为您提供数字键盘,并且您已将焦点对准EditText,则无法强制输入法切换到代码中的字母键盘。我可能是错的,但这是我的想法。

问题是你是否可以要求任何第三方输入法在编辑文本时给你不同的键盘 - 我认为你不能在你的代码中这样做。输入法会给你数字或字母表取决于你的EditText,但你不能动态地切换它们,因为输入法不知道你的设计问题。您可以做到这一点的唯一方法是制作您自己的输入法,以便您动态切换数字和字母键盘。