在开发中会遇到在搜索输入字符,根据字符显示对于的列表,点击选择,显示在搜索框里,下面采用AutoCompleteTextView来实现,
方便又便捷;
下面我们实现这个功能,比较简单,可以根据自己的项目需求设置:
先上图,看效果;
效果图1.
效果图2.
下面我们来看实现,首先定义aout_complete.xml;
aout_complete.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" tools:context="yuanjl.com.myapplication.AutoCompleteActivity"> <AutoCompleteTextView android:id="@+id/auot_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionHint="请选择" android:dropDownHorizontalOffset="10dp" android:textColor="@color/black" android:backgroundTint="@color/wheat" android:completionThreshold="1"/> </LinearLayout>
这里使用的sdk自带的simple_dropdown_itme_1line.xml,可以根据自己的需求定义itme;
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/dropDownItemStyle" android:textAppearance="?android:attr/textAppearanceLargePopupMenu" android:singleLine="true" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="marquee" />
我们来看一下代码实现,实现起来比较单;
public class AutoCompleteActivity extends Activity { String[] names=new String[]{ "I love you China", "I love you beijing", "android 1", "android 2", "android 3", }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.auto_complete); //也可采用自己定义的layout,这里使用原声的item; ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, names); AutoCompleteTextView autoView= (AutoCompleteTextView) findViewById(R.id.auot_view);autoView.setAdapter(adapter);}}
看起来是不是特别简单,到此就结束了,谢谢!