2017-02-27 83 views
3

我有一个Editext。它包含属性数字和imeOptions(actionDone)在一起。Edittext imeOptions actionDone不能使用数字属性?

<android.support.v7.widget.AppCompatEditText 
     android:id="@+id/edit_text_name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:digits="1234567890abcdefghijklmnopqrstuvwxyz....." 
     android:hint="@string/item_name" 
     android:imeOptions="actionDone" 
     android:maxLines="1" /> 

的actionDone(在Softkeyword完成按钮),而使用数字& & imeOptions未一起发现的属性。我们只能找到没有改变焦点的回车按钮。我已经通过跳过数字属性来尝试它,然后imeOptions正常工作。 在此先感谢

回答

4

只需添加SINGLELINE = “true” 以你的EditText

android:singleLine = "true" 
+0

单行被删除。这就是为什么我使用maxLines = 1 –

+0

@TijoJoseph maxLines真的为你工作?它允许我不止一行..这就是我使用这个不推荐使用的代码 –

+0

@TijoJoseph,singleLine与maxLines = 1不一样的原因。他们做不同的工作,所以singleline仍然经常使用。 – CoolMind

1

我与测试 “的Android版本:数字” 似乎造成的EditText领域的问题,并制定imeOptions到Android时:imeOptions =” actionDone“我无法让”完成“按钮出现在键盘上。

一旦我用

android:inputType="text" 

没有数字设定,键盘则呈现“完成”(或者根据设备的键盘上的刻度),我可以再使用捕捉击键:

editextField.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) { 
       int result = actionId & EditorInfo.IME_MASK_ACTION; 
       switch(result) { 
        case EditorInfo.IME_ACTION_DONE: 
         // put your code here. 
         break; 
       } 
       return false; 
      } 
     }); 
1
view.setRawInputType(view.getInputType & ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE) 

打电话setRawInputType(),而不是setInputType()是很重要的,因为后者将根据INPUTMETHOD和你设置的KeyListener属性将被丢弃。 setRawInputType()只会改变输入法,它不会触摸KeyListener,此外& ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE将禁用多线模式,因此不会看到返回键,而是您可以看到所选的ime选项。

基本上,单线和maxLines有不同的行为。

+0

这是工作,谢谢。 – katso

相关问题