我做计算器是为了好玩,代码在这篇文章中:
活动的开始不工作Java
我的计算器中有很多按钮,其中一个是我想在点击时清除文本框中最后一个字符的按钮,当我按下它超过x秒时,我希望它清除所有文本。
我搜索了很多帖子,我了解到使用handler的OnTouch方法对正在按下的东西很好,但我如何为我的按钮实现这两件事?
提前感谢您的回答!
更新
我使用了Onclick监听器和OnLongClick监听器,它完全按照我的意愿工作!
您只需要设置一个View.OnClickListener和一个View.OnLongClickListener,如下所示:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = mEditText.getText().toString();
if (s != null && s.length() > 0) {
mEditText.setText(s.substring(0, s.length()-1));
}
}
});
mButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
mEditText.setText("");
return true;
}
});
这样做:
Button myClearButton;
//After doing myClearButton = findViewById(int id) or other methods of getting your button call this method:
setClearButtonClickListeners(){
myClearButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clearLastChar();
}
});
myClearButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
clearAllChars();
return true;
}
});
}
只需实现clearLastChar()和clearAllChars()方法;
clearButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clear();
Toast.makeText(HomeSafeActivity.this, "Normal Press", Toast.LENGTH_LONG).show();
});
clearButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(HomeSafeActivity.this, "Long preess", Toast.LENGTH_LONG).show();
yourEditText.setText("");
return true;
}
});
public void clear(){
Editable editableText = yourEditText.getEditableText();
int length = editableText.length();
if (length > 0) {
editableText.delete(length - 1, length);
}
}
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//
}
});
btn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//
return true;
}
});