Селектор с spanable не работает на Android M, но работает нормально на ниже M
Я создаю селектор с настраиваемой строкой textview с помощью этой ссылки на стек-поток ( изменение цвета текста одного ClickableSpan при нажатии, не затрагивая другие ClickableSpans в том же TextView),
он работает нормально на всех версиях Android, кроме Android-M, я не могу определить, почему, пожалуйста, помогите мне, ребята.
В основном мой взгляд такой: https://drive.google.com/file/d/0BwkVxZWl7VcEVkFTQVRNbE9sLTA/view?usp=sharing, я хочу выбрать селектор при регистрации сейчас, но это не должно влиять на остальную часть текста и все это должен быть с одним текстовым представлением или с возможностью связывания
import android.text.SpannableString;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import cl.dummy.R;
import cl.dummy.utility.spannablee.LinkTouchMovementMethod;
import cl.dummy.utility.spannablee.TouchableSpan;
public class Login extends AppCombatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
init();
}
private final void init()
{
final TextView myTextView = GeneralFunctions.findViewByIdAndCast(this, R.id.login_tv_noAccount);
final SpannableString mySpannable = new SpannableString(myTextView.getText().toString());
final TouchableSpan touchableSpan = new TouchableSpan(ContextCompat.getColor(this, R.color.color60),ContextCompat.getColor(this, R.color.colorBlue),Color.TRANSPARENT) {
@Override
public void onClick(View textView) {
GeneralFunctions.simpleMoveToNextActivity(Register.class, Login.this,null);
}
};
myTextView.setMovementMethod(new LinkTouchMovementMethod());
myTextView.setHighlightColor(ContextCompat.getColor(Login.this, android.R.color.transparent));
mySpannable.setSpan(touchableSpan, GeneralFunctions.getText(myTextView).indexOf("Register"), GeneralFunctions.getText(myTextView).length(), 0);
myTextView.setText(mySpannable, TextView.BufferType.SPANNABLE);
}
}
1 ответ
Я решил вышеупомянутую проблему, преобразовав текстовое представление в кнопку, и это работает хорошо, но я не знаю причину, почему это не работало с textview в Android M