java - 计算两个字符串时,它在 TextView 中返回为 nullnull

标签 java android

抱歉,这是我第一次接触 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/

相关文章:

java - Spring JPA 通过从 POST 请求正文获取的列和值查询数据库

来自 Web 服务的相同字符串的 Java md5 哈希对于每个事务都是不同的

android - 如何在 Android 中获取原始 map 标记图标?

android - java.lang.RuntimeException : Unable to start activity ComponentInfo: java. lang.NullPointerException 异常

android通过web服务IIS或axis访问sql server?

java - 如何从 Activity 中编辑 fragment 中的textview

java - 停止循环输出

android - 快速移动的物体有时会错过 Box2d 和 AndEngine 中的碰撞

android - Android 上的 FFmpeg

java - Powershell 脚本无法在 Java 代码中运行