mostafa2020 0 ارسال شده در ۲۱ بهمن ۱۳۹۷ گزارش اشتراک گذاری ارسال شده در ۲۱ بهمن ۱۳۹۷ سلام من میخوام رنگ متنی که با ادیت تکست تایپ میکنم تغییر کنه یعنی یه بخش تنظیمات دارم که رنگ رو تغییر میده و میخوام مثلا یه کم که با ابی نوشتم و بعد تغییر دادم بشه قرمز و ... . سرچ زیاد کردم منتها به مشکل برخوردم . از طریق تگ فونت و html.from کد به صورت لحظه ای تغییرات رو میگیرم و اعمال میکنم. منتها تو اندروید 6 به بالا بعد از 40 کاراکتر ، جمع کاراکتر ادیت تکست صفر میشه .یعنی ادیت تکست خالی میشه. برای اندروید 6 به پایین مشکل نداره. باید چیکار کنم باتشکر. tt = new TextWatcher() { public void afterTextChanged(Editable s){ edit2.setSelection(s.length()); } public void beforeTextChanged(CharSequence s,int start,int count, int after){} public void onTextChanged(CharSequence charSequence, int start, int before, int count) { edit2.removeTextChangedListener(tt); int num = charSequence.toString().length(); Log.e("test1235",num+""); @SuppressLint("ResourceType") String colors = getResources().getString( sp_settings.getInt("color",R.color.color2)).substring(3); int size = sp_settings.getInt("size",19); // Toast.makeText(getApplicationContext(),size+"",Toast.LENGTH_LONG).show(); if(num>num_character){ num_character = num; lastcharacter = charSequence.toString(); lastcharacter = lastcharacter.substring(lastcharacter.length()-1).replace("\n", "<br>").replace(" ", " "); html_lastcharacter = "<font size=30 color='#" + colors + "'>" + lastcharacter + "</font>";//آخرین کاراکتر رو رنگ مورد می کند Log.e("test1236",html_lastcharacter+""); all_text = all_text + html_lastcharacter; }else { if(num==0){ num_character = 0; } num_character = num; int sum =all_text.length(); int sub = html_lastcharacter.length(); Log.e("test1237",sum+""); Log.e("test1238",sub+""); all_text = all_text.substring(0,sum-sub); } edit2.setText(Html.fromHtml(all_text)); edit2.addTextChangedListener(tt); } }; edit2.addTextChangedListener(tt); نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .