Java 单击时按钮一个事件,按下时按钮一个不同的事件

Java 单击时按钮一个事件,按下时按钮一个不同的事件,java,android,Java,Android,我正在做一个有趣的计算器,代码在这篇文章中: 我的计算器中有很多按钮,其中一个是一个按钮,当我点击时,我想用它清除文本框中最后一个字符,当我按下它超过x秒时,我想让它清除所有文本 我已经搜索了很多帖子,我了解到使用handler的OnTouch方法对于正在按下的东西是很好的,但是如何为我的按钮实现这两个东西呢 提前感谢您的回答 更新 我使用了Onclick监听器和OnLongClick监听器,它的工作原理完全符合我的要求 这样做: btn.setOnClickListener(new View

我正在做一个有趣的计算器,代码在这篇文章中:

我的计算器中有很多按钮,其中一个是一个按钮,当我点击时,我想用它清除文本框中最后一个字符,当我按下它超过x秒时,我想让它清除所有文本

我已经搜索了很多帖子,我了解到使用handler的OnTouch方法对于正在按下的东西是很好的,但是如何为我的按钮实现这两个东西呢

提前感谢您的回答

更新

我使用了Onclick监听器和OnLongClick监听器,它的工作原理完全符合我的要求

这样做:

btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            //
        }
    });
btn.setOnLongClickListener(new View.OnLongClickListener() {

                @Override
                public boolean onLongClick(View v) {
                    //
                    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()方法

您只需要设置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;
        }
    });

单击按钮后清除textview的最后一个字符。。。只需单击按钮即可清除所有文本。
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);
                }
}