5

私はユーザーがタップするアプリケーションを開発していますEditText。それはアンドロイド計算機を表示するので、ユーザーは算術演算を行うことができます。

ユーザーが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 に答える