[英]Remove accentuation of words in searchView
我正在尝试删除搜索者单词的重点,但是我的代码无法正常工作。
我希望您查找一个示例单词Você
所有变体Voce, Você, voce, você, VOCE, VOCÊ
。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.busca, menu);
MenuItem menuItem = menu.findItem(R.id.sv);
SearchView searchView = (SearchView) menuItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Irá tirar não só acentuações mas também qualquer caractere fora de ASCII
String texto;
texto = Normalizer.normalize(query, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "");
//seu código
return false;
}
//se for pra passar o texto já modificado para o arrayAdapter, vc faz:
@Override
public boolean onQueryTextChange(String newText) {
String texto;
texto = Normalizer.normalize(newText, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "");
arrayAdapter.getFilter().filter(texto);
return true;
}
});
getMenuInflater().inflate(R.menu.activity_main, menu);
return super.onCreateOptionsMenu(menu);
}
如您在此处看到的( 从Unicode字符中删除变音符( )),您可以使用java.text包来执行此操作。 您首先要删除双引号,然后转换为ascii。 非ASCII字符将成为问号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.