【发布时间】:2014-06-06 19:25:27
【问题描述】:
我需要实现TextViewsetOnClickListener的代码。我设置了文本(你的情况如何是)。在此文本中,我只需要 are 将是可点击的而非普通文本。请给我建议。
谢谢。
【问题讨论】:
标签: android textview onclicklistener
我需要实现TextViewsetOnClickListener的代码。我设置了文本(你的情况如何是)。在此文本中,我只需要 are 将是可点击的而非普通文本。请给我建议。
谢谢。
【问题讨论】:
标签: android textview onclicklistener
您可以使用ClickableSpan 来实现。假设您的文字是“我同意TT的使用条款和隐私政策”,并且您希望将隐私政策设置为可点击,那么您可以这样做。
Spannable WordToSpan = new SpannableString("I agree to the Terms Of Use and Privacy Policy of TT");
WordToSpan.setSpan(new ForegroundColorSpan(Color.parseColor("#32a1fc") ), 31, 46, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
WordToSpan.setSpan(privacyPolicy, 31, 46, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((TextView)findViewById(R.id.tv_terms_condition)).setText(WordToSpan);
ClickableSpan privacyPolicy = new ClickableSpan() {
@Override
public void onClick(View view) {
startActivity(new Intent(LegalDisclaimer.this,PrivacyPolicy.class));
}
@Override
public void updateDrawState(TextPaint ds) {// override updateDrawState
ds.setUnderlineText(false); // set to false to remove underline
}
};
在onClick() 方法中,你可以做任何你想做的事情..
【讨论】:
SpannableString ss = new SpannableString("Hi this is @Naveen. I'll meet @Peter in the evening..Would you like to join @Sam??");
ClickableSpan clickableSpanNaveen = new ClickableSpan() {
@Override
public void onClick(View textView) {
//Do Stuff for naveen
}
};
ClickableSpan clickableSpanPeter = new ClickableSpan() {
@Override
public void onClick(View textView) {
//Do Stuff for peter
}
};
ClickableSpan clickableSpanSam = new ClickableSpan() {
@Override
public void onClick(View textView) {
//Do Stuff for sam
}
};
ss.setSpan(clickableSpanNaveen, 11, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(clickableSpanPeter, 29, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(clickableSpanSam, 76, 79, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView contentTextView=(TextView)userHeader.findViewById(R.id.contentTextView);
contentTextView.setText(ss);
contentTextView.setMovementMethod(LinkMovementMethod.getInstance());
【讨论】:
String sourceString = "How <b>are</b> you";
//mytextview.setText(Html.fromHtml(sourceString));
android.text.style.ClickableSpan can solve you problem.
SpannableString ss = new SpannableString(sourceString);
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
startActivity(new Intent(MyActivity.this, NextActivity.class));
}
};
ss.setSpan(clickableSpan, 4, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
【讨论】: