我正在使用移动应用计算器
我正在尝试使用“bsh”库将字符串作为数学方程式进行评估。
成功地,我导入了库并进行了编译。
当我尝试以等号实现此部分时,我一直都为null
equSign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String value = "";
Double result= null;
Interpreter interpreter = new Interpreter();
try {
result = (Double)interpreter.eval(input);
} catch (EvalError evalError) {
evalError.printStackTrace();
}
value = String.valueOf(result);
text.setText(value);
}
});
每次用户输入0到9的数字或。或任何操作+/-
它将被添加到输入变量
Num0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
text.setText(text.getText()+"0");
input = input + "0";
}
});
所有其他按钮的此功能
我也使用try catch来捕获错误
最佳答案
您的问题似乎是您正在混合Java类和“bsh”解释器的变量。基本上,bsh无法直接访问Java变量,因此您需要在解释器中进行设置。i.eval(input)
可能就是您要执行的操作。
查看http://www.beanshell.org/javadoc/bsh/Interpreter.html中的示例,以了解如何使用其他一些功能。