应用程序在访问EditText时停止响应

时间:2018-01-26 11:17:35

标签: java android

我是Android Studio和Java的新手。我想从string获取一个值并将其转换为EditText并在Integer方法中将其设置为自身,但在按下按钮后按钮(按钮已停止响应)用于在onClickListener上减少和/或增加值,如EditTextbtnInc所述,当我在手机上调试时。我在模拟器上调试它也没有用。在创建完所有内容后,我在btnDec方法中声明了final EditTextfinal Button

这是我的代码:

protected void onCreate

我导入了protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Button btnCalculate = findViewById(R.id.btn_calc); final EditText edtPrime = findViewById(R.id.EditText_numMaxPrime); final Button btnInc = findViewById(R.id.btn_incNum); final Button btnDec = findViewById(R.id.btn_decNum); btnDec.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Integer number = Integer.parseInt(edtPrime.getText().toString()); number--; edtPrime.setText(number, TextView.BufferType.EDITABLE); } }); btnInc.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Integer number = Integer.parseInt(edtPrime.getText().toString()); number++; edtPrime.setText(number, TextView.BufferType.EDITABLE); } }); btnCalculate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Sieve(Integer.parseInt(edtPrime.getText().toString())); } }); } android.widget.Button

这是我的XML:

android.widget.EditText

修改 在这里我在Logcat上发现了一个错误:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="karuntodroid.sieveoferatosthenes.MainActivity">

    <TextView
        android:id="@+id/TextView_askPrime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        android:text="Enter the prime number up to:"
        app:layout_constraintBottom_toBottomOf="@+id/EditText_numMaxPrime"
        app:layout_constraintHorizontal_bias="0.051"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="@+id/EditText_numMaxPrime"
        app:layout_constraintVertical_bias="0.032" />

    <EditText
        android:id="@+id/EditText_numMaxPrime"
        android:layout_width="60dp"
        android:layout_height="40dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:hint="100"
        android:inputType="number"
        app:layout_constraintEnd_toStartOf="@+id/btn_incNum"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btn_incNum"
        android:layout_width="40dp"
        android:layout_height="0dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:text="+"
        app:layout_constraintEnd_toStartOf="@+id/btn_decNum"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btn_decNum"
        android:layout_width="40dp"
        android:layout_height="0dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:text="-"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btn_calc"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="CALCULATE"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/TextView_askPrime" />

    <android.support.constraint.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="407dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

    <TextView
        android:id="@+id/TextView_numbersare"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="8dp"
        android:text="Numbers are:"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/TextView_numbers"
        android:layout_width="350dp"
        android:layout_height="309dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="numbers"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/TextView_numbersare" />

    <Button
        android:id="@+id/btn_numbercopy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:text="Copy"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/btn_numsReset"
        app:layout_constraintTop_toBottomOf="@+id/TextView_numbers" />

    <Button
        android:id="@+id/btn_numsReset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:text="Reset"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent           
        app:layout_constraintTop_toBottomOf="@+id/TextView_numbers" />

    </android.support.constraint.ConstraintLayout>

</android.support.constraint.ConstraintLayout>

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

您正在通过edtPrime.setText(number,TextView.BufferType.EDITABLE)在EditText中设置文本;你的数字变量是整数。

如果查看文档,这将尝试获取具有该编号的标识符(id)的资源。 (并且你没有那个带有那个id的资源......那些资源是通过R.string.my_string访问的。

您需要做的是将数字转换为字符串并通过setText(..)

进行设置