单击AutoCompleteTextView后自动提示,无需输入字符,提示信息通过SQLite查询获得

来源:互联网 发布:大数据安全管理办法 编辑:程序博客网 时间:2024/04/23 18:20

单击AutoCompleteTextView后自动提示,无需输入字符,提示信息通过SQLite查询获得

用到的方法
showDropDown

Added in API level 1
void showDropDown ()
Displays the drop down on screen.
该方法属于AutoCompleteTextView,

原理:SQLite保存AutoCompleteTextView输入的历史信息,当单击AutoCompleteTextView时,通过查询SQLite获得历史信息,通过历史信息为AutoCompleteTextView设置Adapter,然后调用showDropDown()。

自动提示代码:

@OnClick(R.id.etRemoteAddress)    @OnTextChanged(R.id.etRemoteAddress)    public void autoCompeteIPAddress(){        IPDataSource ipDataSource =   Injection.provideIpAddressData(this);        String [] addresses1 = ipDataSource.getIPAddresses();        if (addresses1 != null) {            ArrayAdapter<String> aa = new ArrayAdapter<>(this,                    android.R.layout.simple_dropdown_item_1line, addresses1);            etRemoteAddress.setAdapter(aa);            etRemoteAddress.showDropDown();//调用此方法无需输入字符,AutoCompleteTextView                                            //直接自动提示        }    }

SQLite查询代码:

public String [] getIPAddresses(){        SQLiteDatabase database = dbHelper.getReadableDatabase();        Cursor cursor = database.rawQuery(rawQueryIP,null);        ArrayList<String> temp = new ArrayList<>();        if (cursor.moveToFirst()) {            do {                int column = cursor.getColumnIndex("ip");                temp.add(cursor.getString(column));            }            while (cursor.moveToNext());            database.close();        }else {            return null;        }        String [] strings = new String[temp.size()];        int i = 0;        for (String s : temp){            strings[i ++] = s;        }        return strings;    }

效果:
这里写图片描述

0 0
原创粉丝点击