2017-03-02 91 views
1

我试图使用自动填充文本,我遇到了一个小问题。Android AutoCompleteTextView只适用于第一个单词吗?

它的正常工作,当我尝试输入第一个字的国家之一, 但如果我尝试键入其他任何东西,然后什么也没有发生一样的国家之一:“蒙古包”(将连锁行业我的德国)和:“你好蒙古包”(不会给德国)

同样的事情发生,如果我只是点击进入一次,两线开始,它仅适用于第一个字和第一线。另外,如果我使用它的第一个字,并尝试再次使用它,就像德国(从自动完成),然后键入蒙古包,什么也不会弹出。

任何想法如何使文本的其他工作或如何控制它(在线路选择或地方后,将其放置或

代码:

AutoCompleteTextView et1; 
    private static final String[] COUNTRIES = new String[] { 
      "Belgium", "France", "Italy", "Germany", "Spain"}; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main3); 
     et1=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES); 
     et1.setAdapter(adapter); 
     et1.setThreshold(0); 
    } 

XML :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main3" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.asaf1.workersreports.Main3Activity"> 

    <AutoCompleteTextView 
     android:text="" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/autoCompleteTextView" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentBottom="true" 
     android:textAlignment="viewEnd" 
     android:gravity="right|top"/> 
</RelativeLayout> 

回答

0

你必须创建自定义AutoCompleteTextView。在Adapter实现Filter类并且覆盖performFilterring()方法。在这种方法中,你必须编写一些与结果相匹配的代码。在你的情况下,你必须检查输入字符串是否包含你的一个字符串列表。

检查这个环节,其中定制适配器用于: Custom AutoCompleteTextView behaviorAutoCompleteTextView backed by CursorLoader

0

增加你的阈值,从得到的建议... 如果你要搜索进入后1st character然后,

et1.setThreshold(1); 

如果你要搜索进入后2nd character然后,

et1.setThreshold(2); 
+0

我测试它似乎是流行的建议字符REQ的数目,但它仍然停止第一选择后工作(如果阈值是2 “ge”会触发,如果这个1只是“g”会触发)那不是问题,它仍然只能用于第一个单词exp:你好g =失败和g =有效吗? –

相关问题