Androidの小さい機能のTextViewはただいくつかの文字を設定してクリックすることができます
1988 ワード
一、効果展示
まず効果を見てみましょう.
二、コード実装
注釈はすでに詳しく書かれていますが、tvLogingPrivacyPolicyは私が対応する場所にクリック効果を設定する必要があるTextViewで、具体的なコードは以下のように実現されています.
まず効果を見てみましょう.
二、コード実装
注釈はすでに詳しく書かれていますが、tvLogingPrivacyPolicyは私が対応する場所にクリック効果を設定する必要があるTextViewで、具体的なコードは以下のように実現されています.
private void setTvLoginPrivacyPolicySpecialText() {
//
tvLoginPrivacyPolicy.setText(R.string.Bylogging);
//
SpannableString clickString1 = new SpannableString(getString(R.string.PrivacyPolicy));
//
clickString1.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
//
forwardPrivacyPolicy();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
//
ds.setColor(getResources().getColor(R.color.clickText));
}
// 0-->clickString1.length()
}, 0, clickString1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// TextView
tvLoginPrivacyPolicy.append(clickString1);
// TextView
tvLoginPrivacyPolicy.append(new SpannableString(" " + getString(R.string.And)) + " ");
//
SpannableString clickString2 = new SpannableString(getString(R.string.TermsAndConditions));
//
clickString2.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
forwardPrivacyPolicy();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
//
ds.setColor(getResources().getColor(R.color.clickText));
}
// 0-->clickString2.length()
}, 0, clickString2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tvLoginPrivacyPolicy.append(clickString2);
//
tvLoginPrivacyPolicy.setHighlightColor(Color.TRANSPARENT);
//
tvLoginPrivacyPolicy.setMovementMethod(LinkMovementMethod.getInstance());
}