所以,今天我决定试用Android,所以请理解我是初学者。
我现在想要实现的是拥有一个EditText,以及一组用于将数据输入EditText的按钮。
我目前所做的是在XML布局中粘贴一组按钮小部件,并使用此代码使按钮在EditText中插入内容:
final EditText inputline = (EditText) findViewById(R.id.textentry);
final Button my_button = (Button) findViewById(R.id.my_btn);
my_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
inputline.append("a");
}
});
这种作品,但我需要一些问题的帮助:
它总是将字符附加在字符串的末尾,而不是在当前光标位置
类似地,当我拨打inputline.selectAll()
并按下我的按钮时,它会再次在字符串的末尾插入文本;而我希望它首先删除文本(因为它被选中),然后插入字符
为每个按钮编写所有代码似乎很乏味。是否有更好的方法来完成这项工作?
感谢您的帮助!
答案 0 :(得分:0)
我现在通过使用我的自定义函数inputline.append("a");
替换lineInsert()
等来解决这个问题,您可以在下面看到。
public void lineInsert(CharSequence text) {
final EditText inputline = (EditText) findViewById(R.id.textentry);
int start = inputline.getSelectionStart();
int end = inputline.getSelectionEnd();
inputline.getText().replace(Math.min(start,end), Math.max(start,end), text, 0, text.length());
inputline.setSelection(inputline.getSelectionEnd());
}
这与软键盘具有相同的行为。