mostafa2020

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

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

سلام

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

 

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


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

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

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

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

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


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

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

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


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