【发布时间】:2015-09-05 22:01:47
【问题描述】:
我正在尝试使用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获取数据并相应地修改您的getContentResolver().query()调用(您可以使用一堆null参数)。 -
@SqueezyMo 你能更具体地解释一下吗?我没有完全理解 getContentResolver().query() 方法
-
看看documentation。您可以使用作为第三个参数传入的
SELECT语句有效地限制返回的行。你可以看到可用的列here。
标签: java android listview filter searchview