我有一个带有人名的 ListView 和一个带有 Search 小部件的 ActionBar。我想要做的是关注 ListView 中包含搜索查询作为子字符串的第一项。
例如,如果我有一个名为“John Doe”的人,并且我搜索“hn D”,那么只要它是第一个包含“hn D”作为子字符串的行,就应该关注该行。
请注意,我不希望从列表中删除不包含子字符串的项目。
这就是我列出清单的方式。
activity_main.xml
<ListView android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
list_item.xml
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:textSize="16sp"
android:textStyle="bold" />
MainActivity.java
String[] names = {"John Doe","Mark Marky","Donald Duck","Derp Derpson"};
lv = (ListView) findViewById(R.id.list_view);
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.name, names);
lv.setAdapter(adapter);
我还有一个带有搜索小部件的操作栏,我实现了onQueryTextChange()
andonQueryTextSubmit()
方法。
问题是如何在这些方法中搜索列表以及如何关注适当的列表项?