텍스트 암기 연습을위한 앱을 구축 중입니다. 나는 textview를 가지고 있으며 각 단어를 클릭 할 수있게 만들어서 클릭하면 밑줄이 그 단어를 대체하게됩니다. 그런 다음 밑줄을 다시 클릭하면 원래 단어가 복원됩니다. 이 구절 주어진 예를 들어더 많은 클릭을 위해 텍스트를 클릭하고 저장하여 바꿉니다.
: 그리고 송아지와 어린 사자와 살진 함께
"그리고 늑대가 양고기 함께 거하며, 표범이 아이에 누워한다 어린 아이가 그들을 인도 할 것이다. "
'늑대'와 '어린 양'를 클릭하면 리드 : "그리고 ____ (가) ...을 ____ 함께 거하여야한다"는 밑줄에
을 클릭하면 원래 단어를 복원합니다 를 "그리고 늑대은 어린 양, ...와 함께 있어야합니다. ".
String text = textView.getText().toString();
final SpannableString spannableString = new SpannableString(text);
String regex = "\\S+";
Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
final String word = matcher.group();
final int start = matcher.start();
final int end = matcher.end();
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
try {
Editable editable = (Editable) textView.getText();
editable.replace(start, end, "____");
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void updateDrawState(TextPaint ds) {
//Remove default underline associated with spans
ds.setUnderlineText(false);
}
};
spannableString.setSpan(clickableSpan, start, end,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}