java - 搜索阿拉伯语自定义列表视图
问题描述
我有一个包含阿拉伯语字符串的自定义列表视图。我想在该列表视图中搜索特定视图(行)。我在主要活动中使用 addTextChangedListener,如下所示
editsearch = (EditText) findViewById(R.id.search);
editsearch.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
String text = editsearch.getText().toString().toLowerCase(Locale.ENGLISH.getDefault());
//String text = editsearch.getText().toString();
adapter.filter(text);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {
// TODO Auto-generated method stub
}
});
在我的适配器中,我使用基本适配器
Context mContext;
LayoutInflater inflater;
private List<MyDataModelads2> modelList = null;
private ArrayList<MyDataModelads2> arraylist;
public myarraynew(Context context, List<MyDataModelads2> modelList) {
mContext = context;
this.modelList = modelList;
inflater = LayoutInflater.from(mContext);
this.arraylist = new ArrayList<MyDataModelads2>();
this.arraylist.addAll(modelList);
}
我在我的适配器中插入了以下过滤方法
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
modelList.clear();
if (charText.length() == 0) {
modelList.addAll(arraylist);
} else {
for (MyDataModelads2 wp : arraylist) {
if (wp.getName().toLowerCase(Locale.getDefault()).contains(charText)) {
modelList.add(wp);
}
}
}
notifyDataSetChanged();
}
有两个问题:
- 当我在搜索栏中输入文本时,即使我删除了我输入的文本(空搜索栏),列表也会变为空。换句话说,在我在搜索栏中输入任何文本并删除该文本后,列表变为空。
- 我应该在我的代码中添加什么以启用对阿拉伯语的搜索?因为我认为代码仅适用于英语
解决方案
推荐阅读
- wso2 - 标注正在调用不同的端点
- python-3.x - 'numpy.ndarray' 对象没有属性 'write'
- c++ - 在 Windows 上使用 cmake 编译 FFTW (OpenMP)
- javascript - NodeJS - 一分钟后电子托盘图标消失
- r - 比较多列中的字符(因子)
- css - 减少 SASS 函数生成的 CSS 数量
- dialogflow-es - dialogFlow 中是否有办法将所有意图更改为 endInteraction 为真?
- android - 如何保存地图
从 Flutter 到 Firestore - r - 如何对具有不同长度的多个站点数据执行 Mann Kendall 测试并在 R 中的单个数据帧中输出?
- python - 如何在输入框中打印新行?