Skip to content

Instantly share code, notes, and snippets.

@amay077
Last active December 25, 2015 18:28
Show Gist options
  • Select an option

  • Save amay077/7020280 to your computer and use it in GitHub Desktop.

Select an option

Save amay077/7020280 to your computer and use it in GitHub Desktop.
public class ClikcableSpanTestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final List<Pair<String, String>> data = new ArrayList<Pair<String,String>>();
data.add(new Pair<String, String>("りんご", "隠し味としてカレーに入れます"));
data.add(new Pair<String, String>("みかん", "あぶりだしに使います"));
data.add(new Pair<String, String>("すいか", "種を食べると盲腸になります(嘘)"));
final SpannableStringBuilder sb = new SpannableStringBuilder();
final String SEP = ", ";
int spanStart = 0;
for (final Pair<String, String> p : data) {
sb.append(p.first);
sb.append(SEP);
// 追加した文字列を Span にする
sb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(getApplicationContext(),
p.second, Toast.LENGTH_SHORT).show();
}
}, spanStart, spanStart + p.first.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spanStart += (p.first.length() + SEP.length());
}
TextView tv = (TextView)findViewById(R.id.text);
tv.setText(sb);
tv.setMovementMethod(LinkMovementMethod.getInstance()); // これ忘れるとクリックできなくて小一時間悩む
}
}
@amay077
Copy link
Copy Markdown
Author

amay077 commented Oct 17, 2013

実行結果

imag

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment