Ben bir ClickText ve ben ClickableSpans oluşturmak için desenleri kontrol etmek için desenler kontrol ettiğim TextWatcher var.EditText içinde metin aramalarının sonuna tıklayın ClickableSpan satır sonuna sonuna() tıklamak
private void checkSpans(){
Matcher matcher = Pattern.compile("(^|[ \\t\\n])#\\w+").matcher(text);
while (matcher.find()) {
BlueClickableSpan[] spans = getText().getSpans(matcher.start(), matcher.end(), BlueClickableSpan.class);
for (BlueClickableSpan span : spans) {
text.removeSpan(span);
}
text.setSpan(new BlueClickableSpan(),
matcher.start(),
matcher.end(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
İşte özel Span sınıfım. Bir yayılma ile benim metin bitirmek ve kendinden sonra başka karakter var ve onu, hala span bir tıklama olarak sayar ve onClick denir SONRA ben dokunduğunuzda
private class BlueClickableSpan extends ClickableSpan {
@Override
public void onClick(View view) {
Spanned s = getText();
int start = s.getSpanStart(this);
int end = s.getSpanEnd(this);
String clickedString = s.subSequence(start, end).toString().trim();
if (onSpanClick != null)
onSpanClick.onClick(clickedString);
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(ContextCompat.getColor(IdeaFlowApp.getAppContext(), R.color.main_blue));
}
}
sorundur. Bu nedenle, düzenlemeye devam etmek için yayından sonra imleci hemen yerleştiremiyorum. Ancak, herhangi bir sembol basarsam, hatta boşluktan sonra bile boşluk yazarsam, imleci yayından sonra kolayca yerleştirebilirim ve her şey iyi çalışıyor. Herhangi bir sembol yoksa, tıklanabilir yayından sonra edittext tıklamaları düzeltmenin bir yolu var mı?
Benzer bir sorun yaşadım ve bu [http://stackoverflow.com/a/24995777] bana yardımcı oluyor. –
[Boş alan tıklandığında çağrılan] [ClickableSpan garip davranış: onClick()] 'nin olası kopyası] (https://stackoverflow.com/questions/9274331/clickablespan-strange-behavioronclick-called-when-clicking-empty-space) – bummi