AutoCompleteTextView的作用是在輸入框中輸入我們想要輸入的信息,就會出現其他與其相關的提示信息
下面是實例代碼:
MainActivity.java
package com.shaoxin.myautocompletetextview; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.CursorAdapter; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private AutoCompleteTextView autoCompleteTextView; private String[] strings = {"aaa", "aabb", "aabc"}; private ArrayAdapter arrayAdapter; private ContentResolver contentResolver; private List list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //自動補全文本框 autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView); //內容解析器 contentResolver = getContentResolver(); list = new ArrayList(); //光標接受內容解析器所解析的內容,調用電話薄,記住要加權限 Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{"_id", "data1", "display_name"}, null, null, null); //光標下移,將指向的內容存入集合當中 while (cursor.moveToNext()) { String string = cursor.getString(1); list.add(string); } // arrayAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, list); // autoCompleteTextView.setAdapter(arrayAdapter); MyAdapter myAdapter = new MyAdapter(MainActivity.this, cursor); autoCompleteTextView.setAdapter(myAdapter); } //自定義適配器,繼承光標適配器 class MyAdapter extends CursorAdapter { MyAdapter(Context context, Cursor c) { super(context, c); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { //視圖填充 View view = View.inflate(MainActivity.this, R.layout.auto_view, null); return view; } @Override public void bindView(View view, Context context, Cursor cursor) { TextView textView = (TextView) view.findViewById(R.id.txt); textView.setText(cursor.getString(1)); } } }
activity_main.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_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" tools:context="com.shaoxin.myautocompletetextview.MainActivity"> <AutoCompleteTextView android:id="@+id/autoCompleteTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="1" android:text="請輸入內容" /> </RelativeLayout>
auto_view.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"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/txt" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
將代碼直接導入運行即可