实现搜索栏从列表视图中筛选列表



我正在制作应用程序,并尝试使用搜索功能从列表视图中筛选数据。我的列表视图中的数据支持多语言。如果用户在其语言中键入单词,则列表视图中将显示数据。我不知道如何使用搜索栏。下面是我的代码:

listView = findViewById(R.id.Lv);
listView.setSelected(true);
share = findViewById(R.id.share);
timkiembar = findViewById(R.id.timkiembar);
timkiembar.addTextChangeListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}
@Override
public void afterTextChanged(Editable s) {
}
});
String[] storyname = getResources().getStringArray(R.array.stories_names);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,R.layout.row,R.id.row_txt,storyname);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(Reading.this,web.class);
intent.putExtra("story_key",position);
startActivity(intent);
}
});

下面是我要在listview中显示的String.xml:

<string-array name="stories_names">
<item name="bai1">@string/bai1</item>
<item name="bai2">@string/bai2</item>
<item name="bai3">@string/bai3</item>
<item name="bai4">@string/bai4</item>
<item name="bai5">@string/bai5</item>
<item name="bai6">@string/bai6</item>
<item name="bai7">@string/bai7</item>
<item name="bai8">@string/bai8</item>
<item name="bai9">@string/bai9</item>
<item name="bai10">@string/bai10</item>
<item name="bai11">@string/bai11</item>
<item name="bai12">@string/bai12</item>
<item name="bai13">@string/bai13</item>
<string name="bai1">1.   Japanese Daycares</string>
<string name="bai2">2.   Bentos</string>
<string name="bai3">3.   Okinawa</string>
<string name="bai4">4.   Japanese Wedding Ceremonies</string>
<string name="bai5">5.   Crayon Shin Chan</string>
<string name="bai6">6.   Japanese Music</string>
<string name="bai7">7.   Having a baby in Japan</string>
<string name="bai8">8.     Cultured Meat Industry Addresses Mass Production</string>
<string name="bai9">9.     Thousands Lose Homes and Hopes</string>
<string name="bai10">10.       Scholz Succeed Merkel As German Chancellor</string>
<string name="bai11">11.       80th Anniversary Of Pearl Harbor Attack</string>
<string name="bai12">12.       U.S. Diplomat To Boycott Beijing Games</string>
<string name="bai13">13.       2021’s Kanji Character Is ‘Gold’</string>
<string name="bai14">14.       Kishida takes office as 100th Japan PM</string>

有人能帮助我如何制作代码来从列表视图中筛选数据吗?非常感谢

筛选不能与固定大小的数组一起使用,因此首先将String[] storyname = getResources().getStringArray(R.array.stories_names);更改为List<String> storyname = Arrays.asList(getResources().getStringArray(R.array.stories_names));

然后过滤代码:

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) 
{
ArrayAdapter<String> adapter = (ArrayAdapter<String>) listView.getAdapter();
adapter.getFilter().filter(s);
}

最新更新