2017-03-06 64 views
0

textwatchers用于计算多个的EditText我将获得从第一EditText和一个多值从第二EditText计算这两个值的值,并显示其仅一个TextWatcher在机器人使用该结果在第三EditText。 请帮我谢谢。只有一个在机器人

​​

public class TextWatcher_Activity extends Activity { 
    private EditText passwordEditText, passwordEditText1, passwordEditText2; 
    private TextView textView; 
    private View view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_textwatcher); 

     /* Initializing views */ 
     passwordEditText = (EditText) findViewById(R.id.password); 
     textView = (TextView) findViewById(R.id.passwordHint); 
     textView.setVisibility(View.GONE); 

     passwordEditText1 = (EditText) findViewById(R.id.password1); 
     passwordEditText2 = (EditText) findViewById(R.id.password2); 

passwordEditText.addTextChangedListener(passwordWatcher); 
     passwordEditText1.addTextChangedListener(passwordWatcher); 
     passwordEditText2.addTextChangedListener(passwordWatcher); 
} 
    private final TextWatcher passwordWatcher = new TextWatcher() { 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       textView.setVisibility(View.VISIBLE); 
      } 

      public void afterTextChanged(Editable s) { 


       *//* if (s.hashCode() == passwordEditText.getText().hashCode()) { 
        //Do else something with input. 
       } else if (s.hashCode() == passwordEditText1.getText().hashCode()) { 
        //Do something else useful with input. 
       }*//* 

       switch (view.getId()) { 
        case R.id.password: 
         //doStuff(1); 
         if (s.length() == 0) { 
          textView.setVisibility(View.GONE); 
         } else { 
          textView.setText("You have entered : " + passwordEditText.getText()); 
         } 
         break; 
        case R.id.password1: 
         //doStuff(2); 
         if (s.length() == 0) { 
          textView.setVisibility(View.GONE); 
         } else { 
          textView.setText("You have entered : " + passwordEditText1.getText()); 
         } 
         break; 
        case R.id.password2: 
         if (s.length() == 0) { 
          textView.setVisibility(View.GONE); 
         } else { 
          textView.setText("You have entered : " + passwordEditText2.getText()); 
         } 
         break; 
       } 
      } 
     }; 
+0

什么你都试过? – Wizard

回答

0

您可以使用此方法,并ajust到你的代码

private void calculate(EditText editText1, EditText editText2, final EditText editText3) { 
     final int[] value1 = {0}; 
     final int[] value2 = {0}; 
     final int[] total = {0}; 
     editText1.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       value1[0] = Integer.parseInt(s.toString()); 
       total[0] = value1[0] + value2[0]; 
       editText3.setText(total[0]); 
      } 

      @Override 
      public void afterTextChanged(Editable s) {} 
     }); 
     editText2.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       value2[0] = Integer.parseInt(s.toString()); 
       total[0] = value1[0] + value2[0]; 
       editText3.setText(total[0]); 
      } 

      @Override 
      public void afterTextChanged(Editable s) {} 
     }); 
    } 

editText3已总editText1 + editText2的

+0

我得到了一个错误,使用这个函数,请告诉我我怎么打电话在活动 –

+0

叫你如何调用任何其他方法,只是通过你的editTexts例如'calculate(editText1,editText2,editText3);'从你的活动初始化后editTexts –