رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

جستجو و تغییر رنگ کلمه در متن


پست های پیشنهاد شده

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

2F1BX.png

این کد رو پیدا کردم: از این لینک 

http://stackoverflow.com/questions/10799732/highlight-all-words-that-is-searched-via-edittext#new-answer

public class MotivationalQuotesActivity extends Activity {   /** Called when the activity is first created. */Button next;EditText et; TextView tv;   @Override   public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(R.layout.main);  et = (EditText) findViewById(R.id.et);  tv = (TextView) findViewById(R.id.tv);  tv.setText("The name of our country is Bangladesh. Bangladesh is a land of rivers.");  next = (Button) findViewById(R.id.button1);   next.setOnClickListener(new OnClickListener() {           public void onClick(View v) {               // TODO Auto-generated method stub               tv.setText("The name of our country is Bangladesh. Bangladesh is a land of rivers.");               String ett =et.getText().toString();               String tvt =tv.getText().toString();               int ofe = tvt.indexOf(ett,0);                  Spannable WordtoSpan = new SpannableString( tv.getText() );       for(int ofs=0;ofs        {                    ofe = tvt.indexOf(ett,ofs);                    if(ofe == -1)                     break;                 else                     {                                            WordtoSpan.setSpan(new BackgroundColorSpan(0xFFFFFF00), ofe, ofe+ett.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);                     tv.setText(WordtoSpan, TextView.BufferType.SPANNABLE);                     }       }             }       });   }}

ولی مشکل اینه که الان من می خوام متنم از یه txtیا html فراخوانی بشه این کارم می کنم ولی با مشکا روبرو میشه مثلا وقتی یه کلمه می زنی می خوای دوباره یه کلمه دیگه بزنی متن رسیت نمیشه هم جدید مارک میشه هم قدیمی ... دوستان راهنمایی کنن یا یه مثال مثل اینی که می خوام معرفی کنن مرسی.

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

دوست عزیز میتونی توی دکمه اولش رنگ متن و مثلا سفید بذاری بعد که کلمه پیدا میشه رنگش عوض شه.اینجوری هر دفعه که روی دکمه میزنی کل متن رنگش سفید میشه بعد رنگی که مشخص کردی

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

دوست عزیز میتونی توی دکمه اولش رنگ متن و مثلا سفید بذاری بعد که کلمه پیدا میشه رنگش عوض شه.اینجوری هر دفعه که روی دکمه میزنی کل متن رنگش سفید میشه بعد رنگی که مشخص کردی

  ممنون ولی میشه یکم بیشتر توضیح بدید؟ کامل متوجه نشدم چطوری این کارو بکنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر
توی کد مربوط به کلیک دکمه این خط و بذار

[shcode=java]tv.setTextColor(Color.parseColor("#FFFFFF"));[/shcode]

بقیه شو گفته بودین درسته.فقط همین و اضافه کنین

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

دوست عزیز شما باید تکست ویو رو با هر تغییر اپدیت کنید که با عوض شدن متن هم به روز شه من کدتون رو به این شکل عوض کردم فک میکنم مشکلتون حل شه ;)

[shcode=java]

final EditText et = (EditText) findViewById(R.id.et);

tv = (TextView) findViewById(R.id.tv);

et.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

// TODO Auto-generated method stub

}

@Override

public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,

int arg3) {

// TODO Auto-generated method stub

}

@Override

public void afterTextChanged(Editable arg0) {

// TODO Auto-generated method stub

String ett = et.getText().toString();

String tvt = tv.getText().toString();

tv.setText("The name of our country is Bangladesh. Bangladesh is a land of rivers.");

int ofe = tvt.indexOf(ett, 0);

Spannable WordtoSpan = new SpannableString(tv.getText());

for (int ofs = 0; ofs < tvt.length() && ofe != -1; ofs = ofe + 1) {

ofe = tvt.indexOf(ett, ofs);

if (ofe == -1)

break;

else {

WordtoSpan.setSpan(new BackgroundColorSpan(0xFFFFFF00), ofe, ofe + ett.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

tv.setText(WordtoSpan, TextView.BufferType.SPANNABLE);

}

}

}

});

[/shcode]

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

دوست عزیز بسیار عالی این همونی هست که من می خوام فقط الان متن من طولانی هست  می خوام متنو از فایل txt یا html بخونه. چی پیشنهاد می کنی آیا باز کد اینجوری درست کار خواهد کرد؟

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

اره من روی تکست طولانی تست کردم جواب داده html رو هم که فک نمی کنم جواب بده کلا ;)

 این رو متن طولانی جواب نمیده وقتی کلمه مورد جستجو رو پاک میکنی رو آخرین حرف باقی مونده گیر می کنه می ندازه بیرون :huh::S

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 هفته بعد...

با سلام من يه تازه كار هستم و نمي دونم با اين كد چيكار كنم تا اونجايي كه بايد اين كد ها را در ماي اكتيويتي بزارم بعدش چي نمي دونم راهنماييم كنيد لطفا؟

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...