当前位置: 首页 > 知识库问答 >
问题:

计算器按钮(Android)-区分普通点击和长点击(用于正弦和弧正弦函数)

许高峻
2023-03-14

问题是,普通点击或长点击,我只得到“正弦”函数,即使我已经编码了asin函数,我不知道为什么,但它似乎忽略了它,给出了普通点击函数。(同样,在longClicking上,它没有给出我希望的弧正弦函数,而是简单地给出了正常的函数“sine”,这与正常的OnClick函数相同。)

以下是正常的OnClick:

public void onClickListener_sin(View v) {
    vibrator.vibrate(30);

    EditTextMsg = editText.getText().toString();
    doubleEditTextMsg = Double.parseDouble(EditTextMsg);// degree

    toRadian_doubleEditTextMsg = Math.toRadians(doubleEditTextMsg);

    afterSin = Math.sin(toRadian_doubleEditTextMsg);

/////////唯一不同的是上面的一行(这里是Sin,下面是ASin)edittext.settext(aftersin.tostring());

    EditTextMsg = editText.getText().toString();
    result = Float.parseFloat(EditTextMsg);

    result_mul = Float.parseFloat(EditTextMsg);

    result_div = Float.parseFloat(EditTextMsg);

    sum = "";

}
  button_sin.setOnLongClickListener(new OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
            vibrator.vibrate(30);

            EditTextMsg = editText.getText().toString();
            doubleEditTextMsg = Double.parseDouble(EditTextMsg);// degree

            toRadian_doubleEditTextMsg = Math.toRadians(doubleEditTextMsg);


            afterSin = Math.asin(toRadian_doubleEditTextMsg);
            ///////////////The above line is the only difference between this and the above    ///////////function
            editText.setText(afterSin.toString());

            EditTextMsg = editText.getText().toString();
            result = Float.parseFloat(EditTextMsg);

            result_mul = Float.parseFloat(EditTextMsg);

            result_div = Float.parseFloat(EditTextMsg);

            sum = "";

            return true;
                }
            });

谢谢你。

共有1个答案

邓鸿雪
2023-03-14

启用按钮的长时间可单击属性可能会有所帮助

button_sin.setLongClickable(true); // CODE

android:longClickable="true" // XML

然后,正如@opiatefuchs所指出的,为了简洁起见,您真的应该调用.setonlongClickListener()的方式与提供.setonClickListener()的方式相同。

 类似资料:
  • 所以我有一段代码: }; 我想去掉getInnerHtml函数。我目前已经剔除了driver.findElement和webdriver。By.css函数。我的driver.findElement函数返回一个我使用节点模块sinon-stub-promise的promise。 然而,当运行测试时,我不确定如何存根.getInnerHtml函数,我得到一个错误: 我试图改变driver.findEl

  • 问题内容: 我的手势有点麻烦。 我正在尝试在同一个按钮上同时使用水龙头和长按,所以我已经使用了 和 但是当我点击时,我的按钮似乎对这两种功能都有反应。可能是什么问题? 问题答案: 很难说什么与您的代码不兼容,仅提供了两行,但是我建议您以这种方式进行: 为按钮创建插座 然后将手势添加到按钮中 然后创建动作来处理水龙头 Swift 3.0版本: Swift 5.x的更新语法:

  • /编辑:很抱歉缺少一个问题。我需要知道如何使用正弦和余弦来画一个正方形或矩形,旋转中心在正方形或矩形的左上角。用角度的sin和cos得到坐标(x1,y1),然后用角度的sin和cos函数加上90度得到坐标(x2,y2)。使用计数器变量从左到右,从上到下绘制线条,随角度变化。

  • 如果这个解决方案是错误的,如何处理这些点击和设置监听器? PS:请不要告诉我。

  • 我想在记录器服务运行时显示通知。用户应该能够在通知中直接暂停或停止记录器。所以我在通知中添加了两个按钮,并实现了一个BroadcastReceiver来处理按钮点击。 它几乎像我想要的那样工作,但有一个问题我无法解决。当用户单击按钮时,我想显示活动。这是我的代码: 目前执行每个按钮的正确操作,但如果用户单击时应用程序不可见,则不显示该应用程序。如何实现这一点? 有必要在这里实现BroadcastR

  • 我有一个带有EditText和按钮的活动。当用户单击EditText时,会显示键盘,他可以输入一些Text-很好。但是当用户单击按钮时,我希望EditText不再对焦,即键盘隐藏,直到用户再次单击EditText。 单击按钮后,如何“隐藏EditText的焦点”。我可以在按钮的OnClick方法中添加一些代码来实现这一点? 编辑: 顺致敬意,