Как выделить искомый текст в android? Я пытаюсь выяснить, как выделить выбранный элемент. Я нашел много сообщений, касающихся Spannable TextView, но не уверен, как реализовать. Ценю, что вы можете посмотреть и помочь.
Вот мой Searchadapter
class SearchViewHolder extends RecyclerView.ViewHolder{
public TextView japanese,yomikata,english,thai;
public SearchViewHolder(View itemView) {
super(itemView);
japanese = (TextView)itemView.findViewById(R.id.japanese);
yomikata = (TextView)itemView.findViewById(R.id.yomikata);
english = (TextView)itemView.findViewById(R.id.english);
thai = (TextView)itemView.findViewById(R.id.thai);
}
}
public class SearchAdapter extends RecyclerView.Adapter<SearchViewHolder>{
private Context context;
private List<Dict> dicts;
public SearchAdapter(Context context, List<Dict> dicts) {
this.context = context;
this.dicts = dicts;
}
@Override
public SearchViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View itemView = inflater.inflate(R.layout.layout_item,parent,false);
return new SearchViewHolder(itemView);
}
//get view
@Override
public void onBindViewHolder(SearchViewHolder holder, int position) {
holder.japanese.setText(dicts.get(position).getJapanese());
holder.yomikata.setText(dicts.get(position).getYomikata());
holder.thai.setText(dicts.get(position).getThai());
holder.english.setText(dicts.get(position).getEnglish());
}
@Override
public int getItemCount() {
return dicts.size();
}
}
Вот мой Mainacctivity
materialSearchBar.addTextChangeListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
List<String> suggest = new ArrayList<>();
for (String search:suggestList)
{
if (search.toLowerCase().contains(materialSearchBar.getText().toLowerCase()))
suggest.add(search);
}
materialSearchBar.setLastSuggestions(suggest);
}
materialSearchBar.setOnSearchActionListener(new MaterialSearchBar.OnSearchActionListener() {
@Override
public void onSearchStateChanged(boolean enabled) {
if (enabled)
recyclerView.setAdapter(adapter);
}
@Override
public void onSearchConfirmed(CharSequence text) {
startSearch(text.toString());
}
@Override
public void onButtonClicked(int buttonCode) {
}
});
private void startSearch(String text) {
adapter = new SearchAdapter(this,database.getDictByJapanese(text));
recyclerView.setAdapter(adapter);
}
Заранее спасибо!
* Дополнительно: Можно ли выделить несколько строк / строк?