سلام
من به این شکل بخشی از متن یک لیبل رو رنگی و همچنین قابل کلیک میکنم:
#If java
import android.graphics.Color;
import android.text.SpannableStringBuilder;
import android.text.Spannable;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import android.text.method.LinkMovementMethod;
public static void makeTextViewClickable(TextView textView, int color, String metaChar) {
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(textView.getText());
String text = textView.getText().toString();
int startIndex = text.indexOf(metaChar) + 1;
int endIndex = text.indexOf(metaChar, startIndex);
String extractedText = text.substring(startIndex, endIndex);
int start = textView.getText().toString().indexOf(extractedText);
int end = start + extractedText.length();
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(widget.getContext(), "کلیک شد", Toast.LENGTH_SHORT).show();
}
};
spannableStringBuilder.setSpan(clickableSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableStringBuilder.setSpan(new ForegroundColorSpan(color), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
int index = spannableStringBuilder.toString().indexOf("$");
while (index >= 0) {
spannableStringBuilder.replace(index, index + 1, "");
index = spannableStringBuilder.toString().indexOf("$", index);
}
textView.setText(spannableStringBuilder);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);
}
#End If
از تابع بالا به این شکل استفاده میکنم:
Dim jo As JavaObject
jo.InitializeContext
jo.RunMethod("makeTextViewClickable",Array(Label10,Colors.Red,"$"))
همه چی به درستی کار میکنه اما پایین متن قابل کلیک شده یه خط ایجاد میشه:
من چطوری میتونم این زیرخط رو حذف کنم؟