使用按钮过滤 RecyclerView 列表
Filter the RecyclerView list using the button
我通过 SearchView 找到了 RecyclerView 过滤代码。如何更改按钮的此代码?当按下按钮时,相应的 RecyclerView 必须被过滤。所有代码:
public void updateList(List<DataHolder> list){
displayedList = list;
notifyDataSetChanged();
}
searchField.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// filter your list from your input
filter(s.toString());
//you can use runnable postDelayed like 500 ms to delay search text
}
});
void filter(String text){
List<DataHolder> temp = new ArrayList();
for(DataHolder d: displayedList){
//or use .equal(text) with you want equal match
//use .toLowerCase() for better matches
if(d.getEnglish().contains(text)){
temp.add(d);
}
}
//update recyclerview
disp_adapter.updateList(temp);
}
谢谢!
编辑:
在 java/kotlin 文件中向布局和 setOnClickListener 添加一个按钮,然后单击按钮过滤列表。就像您之前在 afterTextChanged()
中所做的(调用 filter(s.toString());
)需要在 setOnClickListener()
中完成
我通过 SearchView 找到了 RecyclerView 过滤代码。如何更改按钮的此代码?当按下按钮时,相应的 RecyclerView 必须被过滤。所有代码:
public void updateList(List<DataHolder> list){
displayedList = list;
notifyDataSetChanged();
}
searchField.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// filter your list from your input
filter(s.toString());
//you can use runnable postDelayed like 500 ms to delay search text
}
});
void filter(String text){
List<DataHolder> temp = new ArrayList();
for(DataHolder d: displayedList){
//or use .equal(text) with you want equal match
//use .toLowerCase() for better matches
if(d.getEnglish().contains(text)){
temp.add(d);
}
}
//update recyclerview
disp_adapter.updateList(temp);
}
谢谢!
编辑:
在 java/kotlin 文件中向布局和 setOnClickListener 添加一个按钮,然后单击按钮过滤列表。就像您之前在 afterTextChanged()
中所做的(调用 filter(s.toString());
)需要在 setOnClickListener()