簡體   English   中英

使用 TextWatcher 添加兩個負數

[英]Add two negative numbers using TextWatcher

我絕對是初學者。 我將添加兩個負數並使用 TextWatcher 顯示結果。 當我嘗試編輯第二個(負數)數字時,應用程序崩潰了。 我不知道問題出在哪里。 主要活動 java 代碼是...

package com.example.addnegativnumbers;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

EditText Number1, Number2;
TextView Result;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Number1 = findViewById(R.id.Number1);
    Number2 = findViewById(R.id.Number2);
    Result = findViewById(R.id.Result);

    TextWatcher textWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }
        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            if (!Number1.getText().toString().equals("") && !Number2.getText().toString().equals("")) {
                int temp1 = Integer.parseInt(Number1.getText().toString());
                int temp2 = Integer.parseInt(Number2.getText().toString());
                Result.setText(String.valueOf(temp1 + temp2));
            }
            ;
        }
        @Override
        public void afterTextChanged(Editable editable) {

        }
    };
    Number1.addTextChangedListener(textWatcher);
    Number2.addTextChangedListener(textWatcher);
}

}...

activity_main.xml 的一部分:

<EditText
    android:id="@+id/Number1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="40dp"
    android:layout_marginTop="40dp"
    android:ems="10"
    android:hint="Enter number 1"
    android:inputType="numberSigned|textPersonName"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<EditText
    android:id="@+id/Number2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:ems="10"
    android:hint="Enter number 2"
    android:inputType="numberSigned|textPersonName"
    app:layout_constraintStart_toStartOf="@+id/Number1"
    app:layout_constraintTop_toBottomOf="@+id/Number1" />

Logcat 的一部分

2022-03-17 06:55:26.959 21618-21618/com.example.addnegativnumbers     E/InputEventSender: Exception dispatching finished signal.
2022-03-17 06:55:26.960 21618-21618/com.example.addnegativnumbers E/MessageQueue-JNI:  Exception in MessageQueue callback: handleReceiveCallback
2022-03-17 06:55:26.968 21618-21618/com.example.addnegativnumbers E/MessageQueue-JNI: java.lang.NumberFormatException: For input string: "-"
    at java.lang.Integer.parseInt(Integer.java:513)
    at java.lang.Integer.parseInt(Integer.java:556)
    at com.example.addnegativnumbers.MainActivity$1.onTextChanged(MainActivity.java:39)

第 39 行是:

     int temp2 = Integer.parseInt(Number2.getText().toString());

問題是字符串“-”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM