Edittext应该按照用户的喜好使用粗体,斜体和普通字体

时间:2018-11-23 13:54:06

标签: java android

我希望用户在编辑文本中键入文本时选择是粗体,斜体还是普通。如果用户选择粗体,则其后键入的文本应为粗体,然后,如果他选择斜体,则先前的文本应为粗体,只有用户要键入的新单词应为斜体。然后在打印此文件时,应按照编辑文本中的外观进行打印。

我已经尝试使用观察者和所有对象,现在,当我单击edittext时,edittext中什么也没有出现,有时会崩溃。

我的代码

 <EditText
    android:id="@+id/check_edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="check"
    />

和Java

bold.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            typeFaceSelected = Typeface.BOLD;
        }
    });
    italics.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            typeFaceSelected = Typeface.ITALIC;
        }
    });
    normal.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            typeFaceSelected = Typeface.NORMAL;
        }
    });
    editCheck.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {}

        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String sAux = s.toString().substring(start, start + count);

            switch(typeFaceSelected)
            {
                case Typeface.NORMAL:
                    resultedText = sAux;
                    break;
                case Typeface.ITALIC:
                    resultedText = "<i>" + sAux + "</i>";
                    break;
                case Typeface.BOLD:
                    resultedText = "<b>" + sAux + "</b>";
                    break;
            }
            editCheck.setText(Html.fromHtml(resultedText));
        }
    });

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //result.setText(Html.fromHtml(resultedText));
            result.setText(Html.fromHtml("<b>Hello World </b>"));
        }
    });

我在哪里弄错了。

0 个答案:

没有答案