Android TextView の一部文字列をリンクにする方法、
特に目新しいわけではないが、サンプルとして、、、
//SpanSampleActivity という Activity の onCreate の中で、、
final TextView textView = (TextView)findViewById(R.id.textViewId);
String text = "ClickableSpan のテスト この link をクリックで!!";
Spannable span = Spannable.Factory.getInstance().newSpannable(text);
Pattern pattern = Pattern.compile("link");
Matcher matcher = pattern.matcher(text);
while(matcher.find()){
span.setSpan(new ClickableSpan(){
@Override
public void onClick(View widget){
Toast.makeText(SpanSampleActivity.this,"link clicked!!",Toast.LENGTH_SHORT).show();
}
},matcher.start(),matcher.end(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
textView.setText(span);
// これが無いとリンク文字以外が消える
// ↓↓↓
textView.setTextColor(Color.WHITE); // あるいは、、 textView.setTextColor(0xffffffff);
// これを忘れずに。
// ↓↓↓↓↓↓↓
textView.setMovementMethod(LinkMovementMethod.getInstance());
-----------
Android 4.0 のエミュレータで試すと、、、
クリックすると以下の Toast