アプリには 4 つの編集テキスト フィールドがあり、それぞれ 1 つの 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));
}
}