簡體   English   中英

我如何過濾ListView項目?

[英]How i can filter ListView items ?

我正在嘗試使用SearchView過濾ListView項目。

這是我的XML代碼。

    <ListView
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:id="@android:id/list"
        android:choiceMode="none"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/searchView"
        style="@style/CodeFont">

        </ListView>

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView"
        android:layout_above="@android:id/list"
        android:layout_alignParentEnd="true"
        android:layout_toEndOf="@android:id/list" />

    <SearchView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/searchView"
        android:hint="Search contact.."
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@android:id/list"

        />

這是我的java代碼

        ListView lv = (ListView) findViewById(android.R.id.list);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String poiName = ((TextView)(view.findViewById(android.R.id.text1))).getText().toString();
                Intent intent = new Intent(MainActivity.this, Message.class);
                intent.putExtra("name",poiName);
                startActivity(intent);
            }
        });

        Cursor =getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);
        startManagingCursor(Cursor);
        String[] from = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone._ID};
        int [] to ={android.R.id.text1,android.R.id.text2};

        final SimpleCursorAdapter listadapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2,Cursor,from,to);
        setListAdapter(listadapter);
        list=getListView();
        list.setChoiceMode(ListView.CHOICE_MODE_NONE);

ListView顯示用戶電話中的所有聯系人。 我想使用SearchView進行過濾

假設您要檢索包含您在SearchView輸入的所有數字的所有數字,並以升序顯示它們。 這可以通過以下方式實現:

    String query = searchView.getQuery().toString();
    Cursor cursor = getContentResolver().query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            null,
            TextUtils.isEmpty(query) ? null : ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE ?",
            TextUtils.isEmpty(query) ? null : new String[] {query},
            TextUtils.isEmpty(query) ? null : ContactsContract.CommonDataKinds.Phone.NUMBER + " ASC"
    );

每當您在SearchView更改文本時,請不要忘記通知適配器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM