当前位置: 首页 > 知识库问答 >
问题:

Java语言分析字符串[重复]时出现lang.NumberFormatException

湛嘉歆
2023-03-14

错误:java。lang.NumberFormatException

文件错误:activity_main_user.xml

相关元素:一个EditText(PlayerMoneyToUpdate)字段和TextView(PlayerMoneyValue)

项目结构:

有两项活动:

主要活动。java是应用程序的主要UI,包含一个显示所有用户(即游戏玩家)的布局

MainUserActivity.java是显示所选玩家和相关信息的UI,例如玩家名称、货币(如果存在)等。

还有两个布局XML文件:

activity_main.xml同样包含主用户界面,没有与之相关的问题

activity_main_user.xml,错误发生的位置。

这是activity\u main\u用户。具有EditText字段的xml代码:

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/UserAvatar"
                android:layout_width="160dp"
                android:layout_height="149dp"
                android:contentDescription="@string/AvatarDescription"
                app:srcCompat="@drawable/monopolycloud" />

            <View
                android:id="@+id/divider8"
                android:layout_width="match_parent"
                android:layout_height="3dp"
                android:background="?android:attr/listDivider" />

            <TextView
                android:id="@+id/PlayerId"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:text="@string/PlayerIdText"
                android:textSize="30sp" />

            <View
                android:id="@+id/divider9"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="?android:attr/listDivider" />

            <TextView
                android:id="@+id/MoneyValue"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:textSize="30sp"
                android:text="@string/DefaultMoney"/>

            <EditText
                android:id="@+id/EditTextField"
                android:layout_width="match_parent"
                android:layout_height="80dp"
                android:autofillHints="true"
                android:hint="@string/EditTextFieldText"
                android:inputType="number" />

            <Button
                android:id="@+id/AddButton"
                android:layout_width="match_parent"
                android:layout_height="65dp"
                android:text="@string/AddButtonText" />

            <View
                android:id="@+id/divider6"
                android:layout_width="match_parent"
                android:layout_height="3dp"
                android:background="?android:attr/listDivider" />

            <Button
                android:id="@+id/SubtractButton"
                android:layout_width="match_parent"
                android:layout_height="65dp"
                android:text="@string/SubtractButtonText" />

            <View
                android:id="@+id/divider7"
                android:layout_width="match_parent"
                android:layout_height="3dp"
                android:background="?android:attr/listDivider" />

            <Button
                android:id="@+id/GoToMainMenu"
                android:layout_width="match_parent"
                android:layout_height="65dp"
                android:text="@string/GoToMainMenu" />

        </LinearLayout>
    </ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

在activity\u main\u user中。java文件中,我定义了一个函数,在该函数中,在该文件开始时,playerid和money字段将得到更新。在EditText中html" target="_blank">添加一个值并按下AddMoney按钮时,它抛出一个异常java。字符串“”的lang.NumberFormatException

主要代码块相关:

AddButton.setOnClickListener(v -> {
            try {
                mValue1 = Integer.parseInt(NewMoneyValue.getText().toString());
                Log.d("Monopoly Cashier value1", String.valueOf(mValue1));
                mValue2 = Integer.parseInt(MoneyValue.getText().toString());
                Log.d("Monopoly Cashier value2", String.valueOf(Integer.parseInt(MoneyValue.getText().toString())));
                mNewMoney = add(mValue1, mValue2);
                MoneyValue.setText("Current Money: $" + mNewMoney);
                MoneyAddedToast.show();
            } catch (Exception e) {
                Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
                Log.d("Monopoly CashierError: ", e.getMessage());
            }
        });

请帮助我,我真的为此感到沮丧。提前谢谢。

附言:我是java Android编程的初学者,所以请尽量简单。附言2:我知道有很多问题与我的问题有关,但我无法理解其中任何一个,因为它们与我面临的问题无关

共有1个答案

钦英发
2023-03-14

请检查NewMoneyValue或MoneyValue是否与其R.id正确链接,因为其中一个没有从UI获取其值

 类似资料: