0

アプリには 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));
            }   

        }
4

2 に答える 2

1

setHint()何かに設定してみてください。

ヒントは人が何らかの入力をするまでのプレースホルダーなので、「燃料代」などを入れることができます。

于 2013-08-08T09:08:15.803 に答える