Android EditText插入

时间:2012-01-08 22:34:37

标签: android android-edittext

如何在EditText字段的中间插入字符?
我正在制作一个可以采用字符串表达式的计算器,如“3 *(10 ^ 2-8)”。我正在使用EditText字段来使用XML来生成字符串:

的EditText

android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/label"
android:text="@string/testString1"
android:background="@android:drawable/editbox_background"

然后在我的活动中,我说:

entry = (EditText)findViewById(R.id.entry);
entry.setText("blablahblah");
entry.setSelection(3);

现在我有一个EditText字段,光标在字符串中的第三个字符后闪烁。如何在那里插入一个角色,所以它正确地说“blahblahblah”?

2 个答案:

答案 0 :(得分:4)

EditText小部件的getText()方法返回一个实现Editable接口的对象。在此对象上,您可以调用insert()方法在特定位置插入文本。

我通过阅读文档找到了这个,但从未使用过这个。但是根据您的需要,要在EditText中的选定位置插入一个字符,以下内容应该有效:

Editable text = entry.getText();
text.insert(entry.getSelectionStart(), "h");

答案 1 :(得分:0)

假设您有一个名为str的字符串,它包含“blablahblah”,您想要将其作为“blahblahblah”,您可以执行以下操作:

String newString = str.substring(0, 3) + "h" + str.substring(3);

取第3个,添加新信,放置其他所有内容。所以你可以从EditText中取出String,像这样改变它,然后把新的String作为EditText的新值。