Много дней проб и ошибок, и я нашел решение!
В разделе OnCreate вам необходимо установить свои представления
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.premix);
EditText vw3 = (EditText) findViewById(R.id.editText3);
EditText vw7 = (EditText) findViewById(R.id.editText4);
vw3.setOnFocusChangeListener(this);
vw7.setOnFocusChangeListener(this);
}
Теперь вы слушаете изменение фокуса, делая это.
public void onFocusChange(View v, boolean hasFocus) {
if((v.getId() == R.id.editText7) && (hasFocus == false))
calc1();
if((v.getId() == R.id.editText10) && (hasFocus == false))
calc2();
затем отделите индивидуальную логику и предоставьте публичный пробел для расчетов.
public void calc1(){
//do something here
}
public void calc2(){
//do something here
}
Результатом этого является то, что различные редактируемые тексты будут действовать независимо друг от друга.
Дополнение:
Если вы делаете это в пользовательской ViewGroup, вам необходимо реализовать View.OnFocusChangeListener.