Android 将初始编辑文本值设置为焦点空白

Android 将初始编辑文本值设置为焦点空白,android,Android,我的应用程序中有4个编辑文本字段,分别包含一个长值和3个双值。我已将它们与onFocusChangedListener()一起使用。我的问题是,每当某个编辑文本获得焦点时,在用户输入值之前,编辑字段中会显示默认值(如果是双精度文本,则为0.0)。我希望它们在用户输入其值之前为空。我尝试过使用editText.setText(“”)和editText.setHint(“”)。但这些在活动开始时起作用,但一旦编辑字段获得焦点,就会显示默认值。 请帮我解决这些小故障。 多谢各位 这是密码 public

我的应用程序中有4个编辑文本字段,分别包含一个长值和3个双值。我已将它们与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));
            }   

        }
尝试将
setHint()
设置为某个值


提示是一个占位符,直到用户输入一些信息,这样您就可以输入“燃料价格”之类的内容了。

我解决了我的问题。它可能会被证明对其他搜索此的人也很有用

我的问题是,在变量进入焦点之前,我正在初始化和解析变量。这使我在焦点时在编辑字段中获得初始值,即null(0)值。 在编辑字段获得焦点后,我初始化并解析了变量

因此,我将代码更改为:

*case R.id.ETTotalCost:
                                if(ETTotalCost.hasFocus())
                                {
                                    if(ETFuelQty.length()>0 && ETFuelPrice.length()>0)
                                    {
                                        fuelQty=Double.parseDouble(ETFuelQty.getText().toString());
                                        fuelPrice= Double.parseDouble(ETFuelPrice.getText().toString());
                                        if((fuelQty!=0)&&(fuelPrice!=0))
                                        totalCost=fuelQty*fuelPrice;
                                        ETTotalCost.setText(new DecimalFormat("##.##").format(totalCost));
                                    }
                                }*  

但那没用意思是我已经试过了。活动开始时,提示将显示在编辑文本中。在我的情况下,当活动开始时,编辑字段为空。问题是当编辑字段获得焦点时,分别显示0.0和0,而我希望它们在焦点上为空。请建议其他方法。我只是卡住了here@PoojaGaonkar我认为这是一个电话特有的问题,我的建议是不要尝试一起破解一个解决方案,因为您可能拥有的任何解决方案都可能会在其他电话上造成更多问题,而这似乎只是一个小麻烦。@Emil。。我想你是对的。我几乎什么都试过了,但似乎什么都没用。