在我的edittext中键入电话号码或姓名时,在列表视图中显示联系人列表

时间:2016-03-31 17:27:16

标签: android search android-softkeyboard

除了这个相关的问题,我无法在网上找到我正在寻找的内容: Display a list of contact as I type name OR phone number in the input box

基本上,如果用户在搜索视图中键入例如键1,2,3,则在搜索视图中显示123,并且在列表视图中显示包含123的电话号码的所有联系人。我已经走到了这一步。

但我也希望看到像CEG'或者' BEG'在列表视图中。关于我甚至可以开始了解更多相关信息的任何指示都会有所帮助。

我需要显示手机输入。我在我的XML中设置了这个: enter image description here

我的代码的显着部分(我相信!)是:

在我的searchview xml中,输入类型设置为phone:

   <SearchView
        android:id="@+id/searchView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="right"
        android:background="#5b74a8"
        android:drawableLeft="@android:drawable/ic_menu_search"
        android:padding="8dp"
        android:queryHint="Search"
        android:inputType="phone"
        android:singleLine="true"
        />
</RelativeLayout>

在OnCreate中我有:

    @Override
    public boolean onQueryTextChange(String newText) {
        // when the text in searchView changes, call the filter function
        adapter.filter(newText);
        return false;
    }

我的过滤方法在另一个类中是:

    // Filter Class
    public void filter(String charText) {
        charText = charText.toLowerCase(Locale.getDefault());
//        _data is our list of Users, or contacts
        _data.clear();
//        If there is nothing in the searchbox,
//        then show all the contacts
        if (charText.length() == 0) {
            _data.addAll(arraylist);
//            or else....
        } else {
            for (SelectUser wp : arraylist) {
//                If a contact's phone number matches the input thus far that the user
//                is filtering for, then include it in the listview.
                if (wp.getPhone().toLowerCase(Locale.getDefault())
                        .contains(charText)) {
                    _data.add(wp);
                }
            }
        }
        notifyDataSetChanged();
    }

如有必要,可以发布更多代码。

0 个答案:

没有答案