[英]How to make a button that shows the backspace (⌫) character on Android?
[英]how to make a backspace button that removes the last character of a stringbuilder inside a for loop
我正在制作一个Android应用程序,它通过蓝牙接收从arduino到android的不同电压电平,并将其转换为字母。 我的应用程序已经可以将其转换为字母,现在的问题是我不知道如何删除字符串构建器中位于for循环内的最后一个字母。.我有一个名为Backspace的按钮,并且希望它与相同的功能一起使用就像在计算机的退格键中一样,按此键将删除最后一个字母。.我希望有人可以帮助我,对此仍然很新。
注意:这些代码来自主要活动; sbletter是一个附加字母的字符串缓冲区
boolean test = false;
char[] charArray = sbletter.toString().toCharArray();
char currentletter =' ';
char prevletter =' ';
StringBuilder strBuild1 = new StringBuilder();
for(int i = 0; i < charArray.length; i++) {
currentletter = charArray[i];
if(curletter != prevletter) {
strBuild1.append(charArray[i]);
if(test){
strBuild1.deleteCharAt(strBuild1.length()-1);
}
test = false;
}
prevletter = currentletter;
}
SecondActivity.textView1.setText(strBuild1.toString());
SecondActivity.backspace.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
test = true;
}
});
这可以肯定地工作:
private void Zero1ActionPerformed(java.awt.event.ActionEvent evt) {
if (OutputTextField.getText().length()>0){
StringBuffer sb = new StringBuffer(OutputTextField.getText());
sb = sb.deleteCharAt(OutputTextField.getText().length()-1);
OutputTextField.setText(sb.toString());
}
}
退格键的onClickListener
中的onClick
方法是事件驱动的,即,当单击退格键时,将调用onClick
方法。 因此,将test
设置为true
并不重要,因为那时候for
循环已经停止执行了,因为它位于外部。
您可以直接使用sbletter
删除其最后一个字符,如下所示:
backspace.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
sbletter = sbletter.deleteCharAt(sbletter.length - 1);
// Now the last character from sbletter is deleted.
// Use sbletter for whatever purpose you like now.
}
}
请注意,StringBuilder和StringBuffer的deleteCharAt方法分别返回StringBuilder和StringBuffer对象,它们带有更改后的值,这就是我这样写的原因:
sbletter = sbletter.deleteCharAt(sbletter.length - 1); // Will work as expected.
而不仅仅是:
sbletter.deleteCharAt(sbletter.length - 1); // Won't work as expected.
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.