我是Android Studio和Java的新手。我想从string
获取一个值并将其转换为EditText
并在Integer
方法中将其设置为自身,但在按下按钮后按钮(按钮已停止响应)用于在onClickListener
上减少和/或增加值,如EditText
和btnInc
所述,当我在手机上调试时。我在模拟器上调试它也没有用。在创建完所有内容后,我在btnDec
方法中声明了final EditText
和final 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>
感谢任何帮助。谢谢!
答案 0 :(得分:2)
您正在通过edtPrime.setText(number,TextView.BufferType.EDITABLE)在EditText中设置文本;你的数字变量是整数。
如果查看文档,这将尝试获取具有该编号的标识符(id)的资源。 (并且你没有那个带有那个id的资源......那些资源是通过R.string.my_string访问的。
您需要做的是将数字转换为字符串并通过setText(..)
进行设置