计算器按钮(Android)-区分普通点击和长点击(正弦和圆弧正弦函数)
下面我列出了两个函数。我有一个“正弦”功能的按钮-这是完美的工作和长按我想添加正弦逆函数或弧正弦 ***注意:下面两个函数之间的区别只是我在一行中指定了afterin变量,在一行中我使用Math.sin,在另一行中使用-Math.asin,这就是它的区别 问题是,正常点击或长点击,我只得到了“正弦”函数,尽管我已经编写了一个函数,我不知道为什么,但它似乎忽略了它,并给出了正常点击函数。(再次强调,长点击时,它并没有给出我想要的圆弧正弦函数,只是给出了正常函数“正弦”,这与正常的OnClick函数相同。) 以下是正常的OnClick:计算器按钮(Android)-区分普通点击和长点击(正弦和圆弧正弦函数),android,calculator,trigonometry,Android,Calculator,Trigonometry,下面我列出了两个函数。我有一个“正弦”功能的按钮-这是完美的工作和长按我想添加正弦逆函数或弧正弦 ***注意:下面两个函数之间的区别只是我在一行中指定了afterin变量,在一行中我使用Math.sin,在另一行中使用-Math.asin,这就是它的区别 问题是,正常点击或长点击,我只得到了“正弦”函数,尽管我已经编写了一个函数,我不知道为什么,但它似乎忽略了它,并给出了正常点击函数。(再次强调,长点击时,它并没有给出我想要的圆弧正弦函数,只是给出了正常函数“正弦”,这与正常的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、here和ASin)
editText.setText(afterin.toString())
及
这是LongClick函数(我希望它给出asin,但它忽略了该函数并继续使用normal(上面的函数并给出“Sine”)
我在编辑文本框中显示结果和输入。。。
(结果,result_mul,sum变量不应该与这个问题相关,我复制了它们,因为它们在我的计算器特定代码中用于各自的函数…它不应该与当前问题相关)
那么,你能发现什么错误吗?
(它忽略onLongClick…,只执行普通Onclick功能(无论单击是正常的还是长的,都是相同的功能)
谢谢。启用按钮的长时间可点击属性可能会有所帮助
button_sin.setLongClickable(true); // CODE
或
然后正如@Opiatefuchs所指出的,为了整洁起见,您应该以提供.setOnClickListener()
的方式调用.setOnLongClickListener()
希望能有所帮助!我认为您应该在单击Listener时设置此按钮,就像在使用onLongClickListener时一样。例如按钮\u sin.setOnClickListener(新的OnClickListener()){};但我正在链接我直接拥有的一个…无论如何,我会尝试这个,我不在乎它如何工作…马上回来..是的,这不是问题..结果是,我没有做这个早期的,但程序仍然没有显示任何区别…事实上,如果你看到我的函数,最后一行“return true”实际上正在做这个…(我想),它将侦听器设置为“开”…问题在于代码中,idk为什么它不给我Asine,它只是在正常和长时间单击时都给“正弦”…嗯,对。你试过为调试调用哪个函数干杯吗?
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;
}
});
button_sin.setLongClickable(true); // CODE
android:longClickable="true" // XML