如何在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”?
答案 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的新值。