I have two EditText
from which I am getting Integer
values of 'quantity' and 'rate' and then I am setting this Integer
value to TextView
names 'Amount'.
private MilkViewModel milkViewModel;
private DatePickerDialog datePickerDialog;
private Button dateButton,submit;
private EditText dateText;
private MaterialDatePicker materialDatePicker;
private Spinner shift_spinner;
private ImageView imageView;
public RadioGroup rg;
private EditText fat;
private EditText snf;
public EditText rate;
public EditText qty;
private TextView amount;
private RadioButton rb;
private String getDate,getShift,getType;
private int getSnf=0;
private int getRate;
private int getQty;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dateText=findViewById(R.id.date_picker_et);
shift_spinner = (Spinner) findViewById(R.id.shift_spinner);
rg=(RadioGroup)findViewById(R.id.radioGroup);
snf=(EditText)findViewById(R.id.snf);
rate=(EditText)findViewById(R.id.rate);
fat=(EditText)findViewById(R.id.fat);
amount= (TextView) findViewById(R.id.amount);
final TextView amount = findViewById(R.id.amount);
qty=(EditText)findViewById(R.id.qty);
submit=(Button)findViewById(R.id.submit);
// int getAmount = Integer.parseInt(amount.getText().toString());
int getRate=Integer.parseInt(rate.getText().toString());
int getQty=Integer.parseInt(qty.getText().toString());
rate.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) {
}
@Override
public void afterTextChanged(Editable s) {
amount.setText(Integer.toString(getRate*getQty));
Toast.makeText(MainActivity.this, ""+amount, Toast.LENGTH_SHORT).show();
}
});
I am using TextWatcher
on rate whenever the user enter the rate the value will be set to the TextView
Amount. But I am getting NumberFormatException
for input string: "".
You are not checking the String
if it is empty or not before using it. Since you are beginner I will try to keep it simple for you. Just keep in mind that you need to check for not empty String
then you can use it for other purpose.
rate.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) {
}
@Override
public void afterTextChanged(Editable s) {
String tempRate = rate.getText().toString();
String tempQty = qty.getText().toString();
if (tempRate != null && !tempRate.isEmpty() && !tempRate.equals("null") && tempQty != null && !tempQty.isEmpty() && !tempQty.equals("null")) {
int getRate=Integer.parseInt(rate.getText().toString());
int getQty=Integer.parseInt(qty.getText().toString());
}
amount.setText(Integer.toString(getRate*getQty));
Toast.makeText(MainActivity.this, ""+amount, Toast.LENGTH_SHORT).show();
}
});