hamidreza.geo

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

9 ارسال در این موضوع قرار دارد

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

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 رو هم که فک نمی کنم جواب بده کلا ;)

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


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

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

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

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


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

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

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری