Java 以编程方式控制EditText中的光标和文本
我有一个编辑文本框,我想在其中控制光标并以编程方式修改文本Java 以编程方式控制EditText中的光标和文本,java,android,android-edittext,Java,Android,Android Edittext,我有一个编辑文本框,我想在其中控制光标并以编程方式修改文本 我在GridView中使用12个按钮制作了12个按钮的键盘。每次按下按钮,我都会在编辑文本框中光标位置插入一个特定的文本。为此,我需要光标位置,以便可以在EditText视图中插入自定义文本 我有两个按钮,用于将光标位置向左/向右移动一个字符。或者,也可以通过触摸EditText视图来设置光标(就像EditText的行为一样) 此外,每当光标位置发生变化时,我希望看到光标在EditText中的当前位置(我想我必须实现某种接口,但我不知
- 我在GridView中使用12个按钮制作了12个按钮的键盘。每次按下按钮,我都会在编辑文本框中光标位置插入一个特定的文本。为此,我需要光标位置,以便可以在EditText视图中插入自定义文本
- 我有两个按钮,用于将光标位置向左/向右移动一个字符。或者,也可以通过触摸EditText视图来设置光标(就像EditText的行为一样)
- 此外,每当光标位置发生变化时,我希望看到光标在EditText中的当前位置(我想我必须实现某种接口,但我不知道如何实现)
- 我正在将按键存储在
ArrayList
- 每次按键时,我都会设置
edittext.setText(字符串)
- 可以通过
获取可编辑文本,但getText()
仅接受字符串李>setText()
PS:我是Android初学者,正在制作我的第二个应用程序(如果有帮助的话,这是一个科学计算器)
另外,如果有人自愿查看我的代码,我将非常感激他在EditText使用包装器类中设置任何数字,然后使用toString()在EditText上设置它
对于设置位置,可以使用editText.setSelection(位置) 要在EditText中设置任何数字,请使用包装器类,然后使用toString()在EditText上设置它
对于设置位置,可以使用editText.setSelection(位置) 我不知道您为什么需要文本视图的光标位置,但请看下面的问题: 实际上,您可以通过获取输入在代码的textview中编辑文本,或者如果您希望,您可以实现TextWatcher界面,以了解用户在textview中键入的每个输入,如下所示:
private class CheckText implements TextWatcher {
@Override
public void afterTextChanged(Editable s) {
//triggers after the user changed the input on text
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//triggers before the user changed the input on text
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
//triggers when the user changed the input on text
}
}
我不知道您为什么需要文本视图的光标位置,但请看下面的问题: 实际上,您可以通过获取输入在代码的textview中编辑文本,或者如果您希望,您可以实现TextWatcher界面,以了解用户在textview中键入的每个输入,如下所示:
private class CheckText implements TextWatcher {
@Override
public void afterTextChanged(Editable s) {
//triggers after the user changed the input on text
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//triggers before the user changed the input on text
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
//triggers when the user changed the input on text
}
}
我就是这样做的
int[] kbdButtons = { R.id.button1, R.id.button2, R.id.button3,
R.id.button4, R.id.button5, R.id.button6, R.id.button7,
R.id.button8, R.id.button9, R.id.button10, R.id.button11,
R.id.button12, R.id.button13, R.id.button14, R.id.button15}
2.然后将自定义Onclicklistner添加到kbdButtons数组中的所有按钮
for (int i = 0; i < kbdButtons.length; i++) {
Button buttonNum = (Button) dialoglayout
.findViewById(kbdButtons[i]);
buttonNum.setOnClickListener(hindiKbdBtnsClick);
}
EditText hkEditText = (EditText)FindViewById(R.id.myEdittextId);
-看,我只是在当时按下的按钮上添加了文字。
-您还可以看到一些特殊按钮的功能,如空格、shift和enter,我就是这样做的
int[] kbdButtons = { R.id.button1, R.id.button2, R.id.button3,
R.id.button4, R.id.button5, R.id.button6, R.id.button7,
R.id.button8, R.id.button9, R.id.button10, R.id.button11,
R.id.button12, R.id.button13, R.id.button14, R.id.button15}
2.然后将自定义Onclicklistner添加到kbdButtons数组中的所有按钮
for (int i = 0; i < kbdButtons.length; i++) {
Button buttonNum = (Button) dialoglayout
.findViewById(kbdButtons[i]);
buttonNum.setOnClickListener(hindiKbdBtnsClick);
}
EditText hkEditText = (EditText)FindViewById(R.id.myEdittextId);
-看,我只是在当时按下的按钮上添加了文字。
-您还可以看到一些特殊按钮的功能,如空格、shift和enter。这对我帮助不大
getText().toString()
这将只提供EditText字符串。这对我帮助不大!