java 在EditText中编辑所选文本

egdjgwm8  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(155)

我有一个按钮和一个EditText在我的应用程序。当你点击按钮,文本从EditText放置在数据库中。我需要当点击按钮,字符像这样AselectedtextA添加到所选的文本片段中的EditText,同时保留位置的其余文本从EditText之前和之后的选择。
下面是我的代码:

    • 主要活动. java**
ImageView button;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

button = findViewById(R.id.button);

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String string;
                int startSelection = descEditText.getSelectionStart();
                int endSelection = descEditText.getSelectionEnd();

                string = descEditText.getText().toString();
                string.substring(startSelection, endSelection);

                Spanned s = Html.fromHtml("<b>" + string + "</b>");

                descEditText.setText(s);
            }
        });
    }
    • 活动主体. xml**
<ImageView
        android:id="@+id/button"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:layout_marginTop="100dp"
        android:alpha="0.8"
        android:src="@drawable/ic_format_bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

我需要在单击按钮时,像这样的字符AselectedtextA被添加到EditText中的选定文本片段,同时保留EditText中选择前后的其余文本的位置。

soat7uwm

soat7uwm1#

很奇怪,问题看起来并不复杂,却没有人给出答案),总的来说,我找到了一个合适的拐杖......唯一让我有点困惑的是,在选中的文本片段末尾添加字符时出现的shift,但由于endSelection是int,我只是在位置上添加了要添加的字符数......

String s = "AAA";
String e = "BBBB";
int startSelection = descEditText.getSelectionStart();
int endSelection = descEditText.getSelectionEnd();
descEditText.getText().insert(startSelection, s);
descEditText.getText().insert(endSelection + 3, e);

相关问题