我有以下AutoCompleteTextView

  <AutoCompleteTextView
                android:id="@+id/contact_list_auto_complete_text_view"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:enabled="false"
                android:hint=" Enter number"
                android:singleLine="true"
                android:textSize="20sp" >
  </AutoCompleteTextView>


AutoCompleteTextView的输入是通过我创建的“拨号程序”布局完成的,因此该AutoCompleteTextViewandroid:enabled="false",为了在我的AutoCompleteTextView上添加用户输入,我使用以下代码:

   String mText =_searchAutoCompleteTextView.getText().toString()+_dialer_digits[position]; //the digit the user clicked upon
  _searchAutoCompleteTextView.setText(mText);
  _searchAutoCompleteTextView.performCompletion();
  if(_searchAutoCompleteTextView.getText().toString().length()>2 &&  _searchAutoCompleteTextView.getAdapter().getCount()> 0)
  {
    _searchAutoCompleteTextView.showDropDown();
  }


除了一个奇怪的问题,一切都工作正常:
由于输入不是由设备的键盘完成的,而是由我的拨号器使用setText()完成的,因此,如果用户单击的位数超过了AutoCompleteTextView的大小,则最后一位数字将被破坏,并且在继续输入更多数字的同时, AutoCompleteTextView不会向左滚动。奇怪的是,我尝试启用它,并从设备的键盘输入一些长输入,使其工作正常,长文本未中断且正在滚动。由于我无法使用设备的键盘,因此必须通过布局和setText()完成

非常感谢

编辑:

这是一个屏幕截图:

最佳答案

您可以使用append而不是setText将光标移到末尾。

关于android - 文本长于 View 大小的AutoCompleteTextview singleLine setText()会导致单词断裂,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24053739/

10-13 03:05