如何在计算器中编程 2 个功能 C 按钮?
How to program 2 function C button in calculator?
我是 Android Studio 的初学者,我想在 calc 中制作一个具有 2 个功能的 C 按钮。
我该怎么做才能在点击 C 按钮时仅删除一个数字,然后按住删除 TextView 中的所有数字?
findViewById(R.id.btnClear).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtScreen.setText(""); // Clear the screen
// Reset all the states and flags
lastNumeric = false;
stateError = false;
lastDot = false;
您是否查看了 onClick()
和 onLongPress()
方法?
cancelButton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
myTextView.setText("");
return true;
}
});
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeOneCharacter();
}
});
private void removeOneCharacter()
{
String textViewValue = myTextView.getText().toString();
if (textViewValue != null && textViewValue.length >= 2)
{
myTextView.setText(textViewValue.substring(0, textViewValue.length() - 2);
}
}
onClick()
方法一次从 TextView
中删除 char
。然而,onClick()
方法从 TextView
中删除了整个 String
,但仅考虑是否已经存在 2 个或更多字符以防止 Exception
由于上限而发生的子串。
这里的一个改进可能是添加另一个 if 函数来检查长按中的字符长度,如果只剩下一个字符则执行清除。
您可以通过设置onClickListener 和onLongClickListener 来实现。
cButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String currentText = textView.getText().toString();
if(currentText.length >= 2){
currentText = currentText.substring(0, currentText.length - 2);
}else{
currentText = "";
}
textView.setText(currentText);
}
});
cButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
textView.setText("");
return true;
}
});
我是 Android Studio 的初学者,我想在 calc 中制作一个具有 2 个功能的 C 按钮。 我该怎么做才能在点击 C 按钮时仅删除一个数字,然后按住删除 TextView 中的所有数字?
findViewById(R.id.btnClear).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtScreen.setText(""); // Clear the screen
// Reset all the states and flags
lastNumeric = false;
stateError = false;
lastDot = false;
您是否查看了 onClick()
和 onLongPress()
方法?
cancelButton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
myTextView.setText("");
return true;
}
});
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeOneCharacter();
}
});
private void removeOneCharacter()
{
String textViewValue = myTextView.getText().toString();
if (textViewValue != null && textViewValue.length >= 2)
{
myTextView.setText(textViewValue.substring(0, textViewValue.length() - 2);
}
}
onClick()
方法一次从 TextView
中删除 char
。然而,onClick()
方法从 TextView
中删除了整个 String
,但仅考虑是否已经存在 2 个或更多字符以防止 Exception
由于上限而发生的子串。
这里的一个改进可能是添加另一个 if 函数来检查长按中的字符长度,如果只剩下一个字符则执行清除。
您可以通过设置onClickListener 和onLongClickListener 来实现。
cButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String currentText = textView.getText().toString();
if(currentText.length >= 2){
currentText = currentText.substring(0, currentText.length - 2);
}else{
currentText = "";
}
textView.setText(currentText);
}
});
cButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
textView.setText("");
return true;
}
});