У меня есть собственное представление списка, в котором есть арабские строки. Я хочу найти конкретное представление (строку) в этом списке просмотра. Я использую 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
}
});
В моем adpater,Я использую базовый адаптер
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();
}
Есть две проблемы:
- Когда я набираю текств строке поиска список становится пустым, даже если я удаляю набранный текст (пустая строка поиска). Другими словами, список становится пустым после того, как я напечатал любой текст в строке поиска и после того, как я удалил этот текст.
- Что я должен добавить в свой код для поиска арабского языка?как я думаю, код только для английского