我有2个EditText接收数字值,我需要将两个值相加并在TextView中显示。我没有按钮来启动总和,所以当用户键入TextView时需要自动更改。
我尝试使用TextWatcher,但是当用户在同一个EditText中键入2个数字时,我遇到了问题(如果他输入" 1"而不是#34; 2" ,TextView显示" 3"而不是" 12")
这是我的XML:
<EditText
android:layout_height="wrap_content"
android:layout_width="200dp"
android:id="@+id/edit1" />
<EditText
android:layout_height="wrap_content"
android:layout_width="200dp"
android:id="@+id/edit2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text1"/>
我的Java代码:
editText1.addTextChangedListener(new TextWatcher(){
DecimalFormat dec = new DecimalFormat("0.00");
@Override
public void afterTextChanged(Editable arg0) {
if(!arg0.toString().equals(current)){
String edittext1_value = arg0.toString();
int total = Integer.parseInt(edittext1_value + edittext2_value)
}
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
finish_contribuir.setVisibility(View.VISIBLE);
add_more.setVisibility(View.VISIBLE);
}
private String current = "";
@Override
public void onTextChanged(CharSequence s, int start, int before, int
count) {
if(!s.toString().equals(current)){
}
}
});
办公室里的一些人说可能RxJava可以解决我的问题
答案 0 :(得分:2)
替换:
Integer.parseInt(edittext1_value + edittext2_value)
使用:
Integer.parseInt(edittext1_value)+ Integer.parseInt(edittext2_value);