When I split the char how can use spannable or ClickableSpan to get values?
this is a code
StringBuilder sb = new StringBuilder();
            String data = newFeedModel.getFeedTags();
            String[] items = data.split("#");
            for (String item : items)
            {
                if(item.trim().length() == 0){
                    sb.append("");
                }else{
                    sb.append("#"+item+"\n");
                }
            }
            holder.tags.setText(sb.toString());
I will split all "#" char, like facebook function.
#aaa#bbbccc#xcvsdfsefsefa#22
it will split like this
#aaa
#bbbccc
#xcvsdfsefsefa
#22
but how to know when I split the char then can got correct gata?
Update:
public void onBindViewHolder(ViewHolder holder, int position) {
if(!TextUtils.isEmpty(newFeedModel.getFeedTags())){
            holder.tags.setVisibility(View.VISIBLE);
            String data = newFeedModel.getFeedTags();
            holder.bind(data);
        }
}
in MyClickableSpan
class MyClickableSpan extends ClickableSpan {
    String clicked;
    Context context;
    public MyClickableSpan(Context context, String string) {
        super();
        this.context = context;
        clicked = string;
    }
    public void onClick(View tv) {
        Toast.makeText(context.getApplicationContext(), ""+clicked, Toast.LENGTH_LONG).show();
    }
    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setUnderlineText(false); // set to false to remove underline
    }
}
how can send the data to live search when user click the tags.
this is my live code
public void fetchSearch(String key)
    {
        apiInterface = ApiClient.getApiClient().create(ApiInterface.class);
        Call<List<SearchModel>> call = apiInterface.getSearch(key);
        call.enqueue(new Callback<List<SearchModel>>() {
            @Override
            public void onResponse(Call<List<SearchModel>> call, retrofit2.Response<List<SearchModel>> response) {
                searchModelList = response.body();
                adapter = new NewSearchAdapter(getActivity(), searchModelList);
                recyclerView.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }
            @Override
            public void onFailure(Call<List<SearchModel>> call, Throwable t) {
            }
        });
    }
    @Override
    public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
        inflater.inflate(R.menu.search, menu);
        SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
        final SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
        searchView.setIconifiedByDefault(false);
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                fetchSearch(query);
                return false;
            }
            @Override
            public boolean onQueryTextChange(String newText) {
                fetchSearch(newText);
                return false;
            }
        });
        super.onCreateOptionsMenu(menu, inflater);
    }
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        switch (item.getItemId()) {
            case R.id.message:
                Intent intent = new Intent(getContext(), NotificationMessageActivity.class);
                startActivity(intent);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }