PDA

View Full Version : highlight کردن یه کلمه در متن در یک textView



CRbreeze
جمعه 30 بهمن 1394, 15:28 عصر
سلام دوستان

من میخوام یک کلمه که سرچ میشه تو برنامه ای که نوشتم بعد از پیدا شدن در متن اونو به صورت های لایت نشون بده .... تو اینترنت سرچ کردم این کد رو به من داد:

ولی موقع اجرا به 14 و 19 ارور میگیره .... من نمیدونم اینا به چه کاری میاد ... کسی میتونه کمک کنه؟


TextView textView = (TextView)findViewById(R.id.textView); String text = "Test";
Spannable spanText = Spannable.Factory.getInstance().newSpannable(text) ;
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 14, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spanText);

rezaricky
جمعه 30 بهمن 1394, 18:14 عصر
سلام . 14 و 19 ایندکس شروع و پایان اون بخشی هست که میخواید هایلایت بشه که تو کد شما چون رشته Test کوتاه تر هست ارور میده.
14 و 19 رو با 0 و 3 عوض کنید احتمالا حل میشه

CRbreeze
دوشنبه 03 اسفند 1394, 16:31 عصر
بله دوست عزیز درست شد ...

حالا من میخوام مثلا تو یه متن 10 خطی که میدونم این کلمه هست ولی نمیدونم مکانش کجاست، کلمه رو هایلایت کنم ... واسه این کار باید چکار کنم؟

CRbreeze
سه شنبه 04 اسفند 1394, 17:30 عصر
کسی نمیدونه باید چکار کنم؟ :متفکر:

rezaricky
سه شنبه 04 اسفند 1394, 18:06 عصر
اول طول رشته رو بدست بیارید بعد این کار رو بکنید ( خودم تست نکردم ، شاید نیاز به تغییراتی هم داشته باشه )

Spannable spanText = Spannable.Factory.getInstance().newSpannable(text) ;
String search = "blah";
int length = search.length():
int index = text.indexOf(search);
while (index >= 0) {
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), index, index+length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = text.indexOf(search, index + length);
}
textView.setText(spanText);