-1

I am trying to set text to an edittext field by using edittext1 minus edittext2.

edittext3 = edittext1 - edittext2

However when i remove an integer from edittext2, it crashes.

Eg. by removing the "0" from "80" the app crashes even though the is "8" left on the edit text.

Any help or suggestion?

eactualQuantity.addTextChangedListener(new TextWatcher(){

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

        }

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

        }

        @Override
        public void afterTextChanged(Editable s) {
            //ebalance.setText((Integer.valueOf(emaximumQuantity.getText().toString())-Integer.valueOf(eactualQuantity.getText().toString())));
            if(s.toString().trim().length()>0){
                String a = emaximumQuantity.getText().toString();
                int aint = Integer.parseInt(a);
                String b = eactualQuantity.getText().toString();
                int bint = Integer.parseInt(b);


                int c = (aint - bint);

                ebalance.setText(c);
            }


        }
    });

Below is the logcat

FATAL EXCEPTION: main Process: nsl.nsl_material_movement, PID: 11195 android.content.res.Resources$NotFoundException: String resource ID #0xc0 at android.content.res.Resources.getText(Resources.java:338) at android.widget.TextView.setText(TextView.java:5494) at nsl.nsl_material_movement.UpdateActivity$1.afterTextChanged(UpdateActivity.java:123) at android.widget.TextView.sendAfterTextChanged(TextView.java:9375) at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:11917) at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1262) at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:574) at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:229) at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:227) at android.text.method.BaseKeyListener.backspaceOrForwardDelete(BaseKeyListener.java:370) at android.text.method.BaseKeyListener.backspace(BaseKeyListener.java:71) at android.text.method.BaseKeyListener.onKeyDown(BaseKeyListener.java:479) at android.text.method.NumberKeyListener.onKeyDown(NumberKeyListener.java:148) at android.widget.TextView.doKeyDown(TextView.java:7316) at android.widget.TextView.onKeyDown(TextView.java:7093) at android.view.KeyEvent.dispatch(KeyEvent.java:2688) at android.view.View.dispatchKeyEvent(View.java:11658) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827) at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:437) at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1818) at android.app.Activity.dispatchKeyEvent(Activity.java:3252) at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:540) at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:58) at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:317) at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:351) at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4714) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4586) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4274) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4331) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4307) at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4468) at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2435) at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1998) 01-21 16:52:12.129 11195-11195/nsl.nsl_material_movement E/AndroidRuntime: at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1989) at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2412) at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:325) at android.os.Looper.loop(Looper.java:142) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

zanacar
  • 1
  • 3
  • `ebalance.setText(c);` - You can't call `setText()` with an arbitrary `int`. Convert it to a `String` first; e.g., `ebalance.setText(String.valueOf(c));`. – Mike M. Jan 21 '18 at 17:04

1 Answers1

1

You can't set an int to a textview. It must be a string like this

ebalance.setText(Integer.toString(c));
Niza Siwale
  • 2,390
  • 1
  • 18
  • 20