Вывод eclipse для eclipse для Android. Вычисленный результат показан на другом пустом редакторе (автоматически)

Я делаю приложение для расчета PMT fucntion, но я застрял при расчете первого платежа. короткое объяснение: у моих приложений будет 3 edittexts, 1 для цены, 1 для процента и последний для результата из них, например, мы вводим цену 100.000, затем 1-й платеж 30, затем третий будет автоматически показывать результат в этом случае его 30.000

Edittext1:
100000
Edittext2:
30
Edittext3:
30000(this one automatically calculate when we done give an input in the Edittext2)

это код:

editText1 = (EditText) findViewById(R.id.editText1); editText2 = (EditText) findViewById(R.id.editText2); editText3 = (EditText) findViewById(R.id.editText3); editText2.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String text1 = editText1.getText().toString(); if (text1.length() != 0) { int input1 = Integer.valueOf(text1); int input2 = Integer.valueOf(s.toString()); int output = (input1 * input2) / 100; editText3.setText(output + ""); } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } });

Преобразование числа в десятичный преобразователь

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){ ****** parsed = ******.parse******(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) { } }); }

ethint1 = edittext1 я изменил некоторые переменные

logcat ::::::::::

02-16 14:43:12.331: E/AndroidRuntime(609): FATAL EXCEPTION: main
02-16 14:43:12.331: E/AndroidRuntime(609): java.lang.NumberFormatException: unable to parse '1,000,000' as integer
02-16 14:43:12.331: E/AndroidRuntime(609): at java.lang.Integer.parse(Integer.java:433)
02-16 14:43:12.331: E/AndroidRuntime(609): at java.lang.Integer.parseInt(Integer.java:422)
02-16 14:43:12.331: E/AndroidRuntime(609): at java.lang.Integer.parseInt(Integer.java:382)
02-16 14:43:12.331: E/AndroidRuntime(609): at java.lang.Integer.valueOf(Integer.java:682)
02-16 14:43:12.331: E/AndroidRuntime(609): at com.m4nd1r1tun45f1n4nc3.abcdefg.Mastercode$1.onTextChanged(Mastercode.java:43)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.widget.TextView.sendOnTextChanged(TextView.java:6131)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.widget.TextView.handleTextChanged(TextView.java:6172)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:6316)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.text.SpannableStringBuilder.sendTextChange(SpannableStringBuilder.java:889)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:352)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:409)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:28)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:583)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:174)
02-16 14:43:12.331: E/AndroidRuntime(609): at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:120)
02-16 14:43:12.331: E/AndroidRuntime(609): at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:247)
02-16 14:43:12.331: E/AndroidRuntime(609): at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:73)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.os.Handler.dispatchMessage(Handler.java:99)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.os.Looper.loop(Looper.java:123)
02-16 14:43:12.331: E/AndroidRuntime(609): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-16 14:43:12.331: E/AndroidRuntime(609): at java.lang.reflect.Method.invokeNative(Native Method)
02-16 14:43:12.331: E/AndroidRuntime(609): at java.lang.reflect.Method.invoke(Method.java:521)
02-16 14:43:12.331: E/AndroidRuntime(609): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-16 14:43:12.331: E/AndroidRuntime(609): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-16 14:43:12.331: E/AndroidRuntime(609): at dalvik.system.NativeStart.main(Native Method)

Вопрос Обновлено :: есть ли способ сделать обе работы (конвертер чисел и третий выход edittext). Примечание: для конвертера чисел я действительно хочу, чтобы он отображался как валюта, когда мы вводим числа в edittext1 (ethint1), это будет автоматически добавьте разделитель. EXAMPLE: мы набираем 100, это будет всего 100 (ничего не изменится), тогда, когда мы добавим еще один номер, оно будет 1000 (автоматически) и так далее, пока не будет 10 000 000 000

/нет ошибки в журнале ошибок/проблемах, но произойдет сбой при вводе процентного /

заранее спасибо,

2 ответа

Изменить строку

editText3.setText(output + "");

в

editText3.setText("" + output);

Объяснение: output - целочисленное значение, а .setText() принимает аргумент String. Добавление "" (пустая строка) до того, как какое-либо целое преобразует его (пусть Java верят, что это так) String.


+ Изменить

editText3.setText(output + "");

в

editText3.setText(String.valueOf(value));

licensed under cc by-sa 3.0 with attribution.