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

مشکل در تغییر رنگ ادیت تکست به صورت لحظه ای


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

سلام

من میخوام رنگ متنی که با ادیت تکست تایپ میکنم تغییر کنه یعنی یه بخش تنظیمات دارم که رنگ رو تغییر میده و میخوام مثلا یه کم که با ابی نوشتم و بعد تغییر دادم بشه قرمز و ... . سرچ زیاد کردم منتها به مشکل برخوردم . از طریق تگ فونت و 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(" ", "&nbsp");
            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);

 

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

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

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

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

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

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

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

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

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

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