Как выделить текст в RecyclerView? (или несколько строк?) - PullRequest
0 голосов
/ 19 января 2020

Как выделить искомый текст в 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);
        }

Заранее спасибо!

* Дополнительно: Можно ли выделить несколько строк / строк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...