Reputation: 21
I have 3 EditText Fields and submit button.Change of value in any EditText will modify value of other two EditText.Have applied setOnEditorActionListener and setOnFocusChangeListener but If user change one editText and click submit button then change in other editText will not happen. which listener to use.please help. Can I use addTextChangedListener in all three EditText.
remainingWorkEdit.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
String remainingWorkInput = remainingWorkEdit.getText()
.toString().trim();
Float actualWorkCalculated = Float.parseFloat(actualWorkEdit
.getText().toString().trim());
actualWorkEdit.setText(actualWorkCalculated.toString());
Float percentageCalculated = actualWorkCalculated
/ Float.parseFloat(workEdit.getText().toString().trim())
* 100;
percentageEdit.setText(percentageCalculated.toString());
Float workCalculated = Float.parseFloat(actualWorkEdit
.getText().toString().trim())
+ Float.parseFloat(remainingWorkInput);
workEdit.setText(workCalculated.toString());
}
});
remainingWorkEdit
.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
// TODO Auto-generated method stub
String remainingWorkInput = remainingWorkEdit.getText()
.toString().trim();
if (actionId == EditorInfo.IME_ACTION_NEXT
|| actionId == EditorInfo.IME_ACTION_DONE) {
Float actualWorkCalculated = Float
.parseFloat(workEdit.getText().toString()
.trim())
- Float.parseFloat(remainingWorkInput);
actualWorkEdit.setText(actualWorkCalculated
.toString());
Float percentageCalculated = actualWorkCalculated
/ Float.parseFloat(workEdit.getText()
.toString().trim()) * 100;
percentageEdit.setText(percentageCalculated
.toString());
Float workCalculated = Float
.parseFloat(actualWorkEdit.getText()
.toString().trim())
+ Float.parseFloat(remainingWorkInput);
workEdit.setText(workCalculated.toString());
return true;
}
return false;
}
});
Code is almost same for other two editText.
Upvotes: 0
Views: 920
Reputation: 5097
You have to do something like this
remainingWorkEdit.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before,int count)
{
percentageEdit.setText(percentageCalculated.toString());
workEdit.setText(workCalculated.toString());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s)
{
// TODO Auto-generated method stub
}
});
Upvotes: 1