Android eclipse:是否可以将十进制格式更改为int?

时间:2015-02-16 09:08:36

标签: android eclipse

我正在申请PMT功能。而且我在某个时候陷入困境。我有一个函数将EditText的数字输入转换为十进制,例如10000000至10,000,000。还有另一个与此转换器功能发生冲突。另一个处理3个EditTexts,1个EditText用于价格输入,第二个EditText用于百分比,最后一个将计算(自动)它们的结果,这两个都是使用整数。

这是数字转换器的代码

public void makeDecimal(View v) {
    ethint1.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

    DigitsKeyListener dkl = new DigitsKeyListener(true, true);
    ethint1.setKeyListener(dkl);

    ethint1.addTextChangedListener(new TextWatcher() {
        private String current = "";

        @Override
        public void afterTextChanged(Editable s) {
            String userInput = s.toString();

            if (!userInput.toString().equals(current)) {
                ethint1.removeTextChangedListener(this);

                String cleanString = userInput.replaceAll("[,]", "");

                if (cleanString.length() > 0) {
                    double parsed = Double.parseDouble(cleanString);
                    String formated = DecimalFormat.getNumberInstance().format(parsed);

                    current = formated;
                    ethint1.setText(formated);
                    ethint1.setSelection(formated.length());
                } else {
                    ethint1.setText(cleanString);
                    ethint1.setSelection(cleanString.length());
                }

                ethint1.addTextChangedListener(this);
            }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start,
                                      int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start,
                                  int before, int count) {
        }
    });
}

以下是计算的代码

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub

    super.onCreate(savedInstanceState);
    setContentView(R.layout.simulasikredit);
    ethint1 = (EditText) findViewById(R.id.ethint);
    etpersen2 = (EditText) findViewById(R.id.etpersen);
    textvDP1 = (EditText) findViewById(R.id.textvDP);
    bkalkulasi1 = (Button) findViewById(R.id.bkalkulasi);

    etpersen2.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            String text1 = ethint1.getText().toString();

            if (text1.length() != 0) {
                int input1 = Integer.valueOf(text1);

                int input2 = Integer.valueOf(s.toString());

                int output = (input1 * input2) / 100;
                textvDP1.setText("" + output /*+ ""*/);
            }

        }
    }
}

然而,拥有他们我的应用程序将崩溃。如果我只使用其中一个计算器或数字转换器,它就可以工作。 有没有办法让它们都起作用? 注意:我的所有这些代码都在一个类中,我的主要类

0 个答案:

没有答案
相关问题