رفتن به مطلب
  • 0

حذف زیرخط از لیبل


امیرحسین قاسمی

سوال

سلام

من به این شکل بخشی از متن یک لیبل رو رنگی و همچنین قابل کلیک میکنم:

#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,"$"))

همه چی به درستی کار میکنه اما پایین متن قابل کلیک شده یه خط ایجاد میشه:

image.png.420d947263835dda6ae60910687984a6.png

 

من چطوری میتونم این زیرخط رو حذف کنم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

1 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

درود

به شکل زیر

ClickableSpan clickSpan = new ClickableSpan() {
    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setUnderlineText(false);    // this remove the underline
    }

    @Override
    public void onClick(View textView) {
        // handle click event
    }
};

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...