开发者

Autocomplettextview filtered by input keys

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜