I use autocompletetextview with SimpleCursorAdapter to get data from sqlite. I'd like to get its drop down list started by the entered key. In my autocompletetextview, the list is not shown or filtered by input text.
eg, If user enter "an", all text started with "an" will be seen in this list.
In Java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new);
txtPNo = (AutoCompleteTextView) findViewById(R.id.txtSTo);
mDbHelper = new DBAdapter(this);
mDbHelper.open();
SimpleCursorAdapter notes = fillToData();
txtPNo.setAdapter(notes);
}
private SimpleCursorAdapter fillToData() {
Cursor c = mDbHelper.getName();
startManagingCursor(c);
String[] from = new String[] {DBAdapter.Name,DBAdapter.No1};
int[] to = new int[] {R.id.txtName,R.id.txtNo1};
Log.d(TAG, "cursor.getCount()=" + c.getCount());
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.autocomplete, c, from,
to);
return notes;
}
In new.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#ffffff"
>
<AutoCompleteTextView android:id="@+id/txtSTo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#000000"
android:hint="To"
android:completionThreshold="1"
android:selectAllOnFocus="true"
android:layout_alignParentTop = "开发者_JS百科true"
android:layout_alignParentLeft="true"/>
</RelativeLayout>
In autocomplete.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:stretchColumns="0" android:padding="5dp">
<TableRow android:padding="5dp">
<LinearLayout android:orientation="vertical">
<TextView android:id="@+id/txtName"
xmlns:android="http://schemas.android.com/apk/res/android"
android:textColor="#000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/txtNo1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:textColor="#000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</TableRow>
</TableLayout>
How to implement to get just filtered list?
txtPNo = (AutoCompleteTextView) findViewById(R.id.txtSTo);
mDbHelper = new DBAdapter(this);
mDbHelper.open();
SimpleCursorAdapter notes = fillToData();
txtPhoneNo.setAdapter(notes);
Umm, if you just copy-n-pasted your code...
The issue is the variable name.
txtPNo != txtPhoneNo
AutoCompleteTextView
精彩评论