单击时按钮一个事件,按下时按钮另一个事件



我做计算器是为了好玩,代码在这篇文章中:
活动的开始不工作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;
}
});

最新更新