5

我正在开发一个用户点击的应用程序EditText,它显示 android 计算器,因此用户能够进行算术运算。

当用户按下 android 计算器中的相等按钮并显示它时,我想检索最终值。使用标准的android计算器可以吗?

打开计算器的代码如下:

Intent intent = new Intent();           
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(new ComponentName(CALCULATOR_PACKAGE, CALCULATOR_CLASS));
startActivity(intent);

在哪里,

String CALCULATOR_PACKAGE ="com.android.calculator2";
String CALCULATOR_CLASS ="com.android.calculator2.Calculator";

关于如何从计算器中检索最终值的任何想法或建议?
谢谢

4

2 回答 2

2

使用标准计算器是不可能的,但该计算器是开源的,因此您可以创建自己的计算器。源代码包含一个名为 Logic (Logic.java) 的类;如果您更新方法 evaluateAndShowResult() 以自动将结果粘贴到剪贴板,然后在您的应用程序中进行粘贴,您就准备好了。

作为替代方案,如果您真的不需要计算器的 UI,您可以只使用 Logic 并将其余部分丢弃。

于 2012-11-05T21:31:29.840 回答
-1

您可以使用 startActivityForResult 启动计算器以获取结果。

这是一个例子

Intent myIntent = new Intent();
myIntent.setClassName("com.android.calculator2", "com.android.calculator2.Calculator");
startActivityForResult(myIntent, CALC_INTENT_RETURN);

   /**
     * Framework method called when return from a launched intent is available.
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode,
        Intent data) {
    if (requestCode == CALC_INTENT_RETURN) {
        if (resultCode == RESULT_OK) {
                    mCalculator.setFeatureValue(mCurrentInputField, Double.parseDouble(data.getAction()));
                    resetValue();
        }
    }
}

从http://code.google.com/p/android-labs/source/browse/trunk/BistroMath/src/com/google/android/bistromath/BistroMath.java?r=6剥离

于 2012-11-05T21:41:10.890 回答