抱歉,这是我第一次接触 Android 开发。我正在做一个计算器,例如,将这个数字与任何运算符相加,它总是
数字的范围是0-1,我选择“1”和“2”,因为按钮具有相同的java代码
代码
public void btn1_click (View v) {
String currentTextData = tvresult.getText().toString();
currentTextData = currentTextData + "1";
tvresult.setText(currentTextData);
}
public void btn2_click (View v){
String currentTextData = tvresult.getText().toString();
currentTextData = currentTextData + "2";
tvresult.setText(currentTextData);
}
public void btnAdd_click (View v){
if(SystemClock.elapsedRealtime() - mlastClickTime < 1000){
return;
}
mlastClickTime = SystemClock.elapsedRealtime();
String val1 = tvresult.getText().toString();
val1 = val1 + "+";
add = true;
tvresult.setText(val1);
}
public void btnSub_click (View v){
if(SystemClock.elapsedRealtime() - mlastClickTime <1000){
return;
}
mlastClickTime = SystemClock.elapsedRealtime();
String val1 = tvresult.getText().toString();
val1 = val1 + "-";
sub = true;
tvresult.setText(val1);
}
public void btnEqual_click(View v) {
if (add) {
val1 += val2;
tvresult.setText(val1);
}
}
My.xml
<TextView
android:id="@+id/tvresult"
android:layout_width="200dp"
android:layout_height="155dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:maxLength="18"
android:maxLines="1"
android:textAlignment="center"
android:gravity="bottom"
android:textColor="@color/colorPrimary"
android:textSize="40sp"
android:visibility="visible"/>
<Button
android:id="@+id/button1"
android:layout_width="100dp"
android:layout_height="80dp"
android:onClick="btn1_click"
android:text="1"
android:textSize="20sp"
android:backgroundTint="@color/colorPrimaryDark"
android:layout_above="@+id/button4"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:id="@+id/button2"
android:layout_width="100dp"
android:layout_height="80dp"
android:onClick="btn2_click"
android:text="2"
android:textSize="20sp"
android:backgroundTint="@color/colorPrimaryDark"
android:layout_above="@+id/button5"
android:layout_toRightOf="@+id/button1"
android:layout_toEndOf="@+id/button1" />
<Button
android:id="@+id/plus1"
android:layout_width="wrap_content"
android:layout_height="90dp"
android:onClick="btnAdd_click"
android:text="+"
android:textSize="20sp"
android:backgroundTint="@color/colorPrimary"
android:textColor="@android:color/white"
android:layout_alignTop="@id/button3"
android:layout_toRightOf="@+id/button3"
android:layout_toEndOf="@+id/button3"/>
<Button
android:id="@+id/equals1"
android:layout_width="100dp"
android:layout_height="115dp"
android:onClick="btnEqual_click"
android:text="="
android:textSize="20sp"
android:backgroundTint="@color/colorPrimary"
android:layout_alignTop="@+id/clear1"
android:layout_toRightOf="@+id/clear1"
android:layout_toEndOf="@+id/clear1" />
最佳答案
您需要将字符串类型转换为 int,例如..
Integer.parseINt(number_string);
并且您必须在将 int 值设置为 textView 中的文本之前进行类型转换,例如..
Stirng.valueOf(int_value)
关于java - 计算两个字符串时,它在 TextView 中返回为 nullnull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43908585/