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);
}