我的应用程序中有 4 个编辑文本字段,它们分别接受一个 long 值和 3 个 double 值。我已经将它们与 onFocusChangedListener() 一起使用。我的问题是,每当某个编辑文本获得焦点时,在用户输入值之前,默认值(如果是双精度则为 0.0)会显示在编辑字段中。我希望在用户输入他的值之前它们是空白的。我尝试过使用 editText.setText("") 和 editText.setHint("")。但是这些在活动开始时起作用,但是一旦编辑字段获得焦点,就会显示默认值。请帮我解决故障。谢谢你。
这是代码
public void onFocusChange(View EditTextFocus , boolean hasFocus)
{
// TODO Auto-generated method stub
try
{
km= Long.parseLong(ETKm.getText().toString());
fuelQty= Double.parseDouble(ETFuelQty.getText().toString());
fuelPrice= Double.parseDouble(ETFuelPrice.getText().toString());
totalCost= Double.parseDouble(ETTotalCost.getText().toString());
}
catch(NumberFormatException ne)
{
ne.printStackTrace();
}
if(ETTotalCost.hasFocus())
{
if((fuelQty!=0)&&(fuelPrice!=0))
totalCost=fuelQty*fuelPrice;
ETTotalCost.setText(new DecimalFormat("##.##").format(totalCost));
}
else if(ETFuelQty.hasFocus())
{
ETFuelQty.setText("");
if((fuelPrice!=0)&&(totalCost!=0))
fuelQty= (int) (totalCost/fuelPrice);
ETFuelQty.setText(String.valueOf(fuelQty));
}
else if(ETFuelPrice.hasFocus())
{
ETFuelPrice.setText("");
if((fuelQty!=0)&&(totalCost!=0))
fuelPrice=totalCost/fuelQty;
ETFuelPrice.setText(String.valueOf(fuelPrice));
}
}