'The clear method in SpannableStringBuilder removes the spans
I have a question.
Code:
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentProfileBinding fragmentProfileBinding = FragmentProfileBinding.inflate(getLayoutInflater());
String[] list = {"123", "456", "789"};
//Default
fragmentProfileBinding.txt.setText(list[0]);
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(fragmentProfileBinding.txt.getText());
spannableStringBuilder.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View view) {
new AlertDialog.Builder(requireContext())
.setItems(list, (dialogInterface, i) -> {
spannableStringBuilder.clear();
spannableStringBuilder.append(list[i]);
fragmentProfileBinding.txt.setText(spannableStringBuilder);
})
.show();
}
}, 0, fragmentProfileBinding.txt.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
fragmentProfileBinding.txt.setText(spannableStringBuilder);
fragmentProfileBinding.txt.setLinkTextColor(Color.parseColor("#3897f0"));
fragmentProfileBinding.txt.setMovementMethod(LinkMovementMethod.getInstance());
return fragmentProfileBinding.getRoot();
}
When changing the value from 123 to 456 or 789, The spans will remove and the text will no longer be clickable, Why?
How can you help me?
Thank you.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
