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

时间:2017-05-11 07:00:51

标签: 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" />

2 个答案:

答案 0 :(得分:1)

只有整数值才能执行计算操作。 因此,您首先必须将字符串值更改为整数,然后需要在其中添加一些值。

String result = String.valueOf(Integer.valueOf(tvresult.getText().toString()) + 1);

答案 1 :(得分:1)

编辑文字为空。使用fragment.setArguments()

检查值是否为空或为空

请在下方找到更新后的代码:

android.text.TextUtils.isEmpty

不要添加&#34; 1&#34;如果你想增加它,请添加到字符串。