使用RxJava动态更新TextView

时间:2017-09-15 14:12:57

标签: android rx-java

我有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可以解决我的问题

1 个答案:

答案 0 :(得分:2)

替换:

Integer.parseInt(edittext1_value + edittext2_value)    

使用:

Integer.parseInt(edittext1_value)+ Integer.parseInt(edittext2_value);