本人觉得MultiAutoCompleteTextView能运用的地方不多,我也只就在淘宝购物上看到了这项功能;
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
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"
android:orientation="vertical"
tools:context="com.example.widgetplus.MainActivity">
<MultiAutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/mactv_main_auto"
android:completionThreshold="1"
/>
</LinearLayout>
Java文件,一个适配器一个数据源可以被多个控件来使用
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
public class MainActivity extends AppCompatActivity {
private MultiAutoCompleteTextView mactv_main_auto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mactv_main_auto = (MultiAutoCompleteTextView) findViewById(R.id.mactv_main_auto);
//获取字符串数组
String data[]=getResources().getStringArray(R.array.data);//名字要一致
//适配器
ArrayAdapter adpter=new ArrayAdapter(this,R.layout.item_test,data);
//给控件设置分隔符(只能是逗号)
MultiAutoCompleteTextView.Tokenizer tokenizer=new MultiAutoCompleteTextView.CommaTokenizer();
mactv_main_auto.setTokenizer(tokenizer);
//给控件设置适配器
mactv_main_auto.setAdapter(adpter);
}
}
当然在实现自动补全的情况下得有数据,所以先去values文件下的strings.xml里面添加数据
<resources>
<string name="app_name">
</string>
<string-array name="data">
<item>张三</item>
<item>李四</item>
<item>小可爱</item>
<item>洛阳</item>
<item>张四</item>
<item>李小二</item>
<item>混蛋</item>
<item>神经</item>
</string-array>
</resources>