2013-08-08 5 views
0

내 앱에는 4 개의 편집 텍스트 필드가 있으며, 각각 하나의 long 값과 3 개의 double 값을 취합니다. onFocusChangedListener()와 함께 사용했습니다. 내 문제는 사용자가 값을 입력하기 전에 특정 편집 텍스트의 포커스가 기본값 (두 배의 경우 0.0)이 편집 필드에 표시 될 때마다입니다. 사용자가 값을 입력하기 전에 해당 사용자가 비어 있어야합니다. editText.setText ("") 및 editText.setHint ("")를 사용해 보았습니다. 그러나 활동이 시작될 때 작동하지만 편집 필드가 포커스를 얻으면 기본값이 표시됩니다. 제발 도와주세요. 감사합니다.초기 Edittext 값을 공백으로 공백으로 설정합니다.

을 Heres 코드

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)); 
      } 

     } 
+0

을 **하지만 도움이되지 않습니다 ** - 수단 ????. – user370305

답변

0

나는 나의 문제를 해결했다. 이것을 검색하는 다른 사람들에게도 유용 할 수 있습니다.

내 문제는 포커스를 받기 전에 변수를 초기화하고 구문 분석하는 것이 었습니다. 이것은 나를 초기 값으로 만들었다. 포커스가있을 때 편집 필드의 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)); 
            } 
           }* 
1

뭔가 setHint()을 설정하십시오.

힌트은 사람이 입력 할 때까지 자리 표시 자이므로 "연료 가격"과 같은 것을 넣을 수 있습니다.

+0

나는 이미 그것을 시도했다. 활동이 시작되면 힌트가 편집 텍스트에 표시됩니다. 내 경우에는 활동이 시작될 때 편집 필드가 비어 있습니다. 문제는 편집 필드에 포커스가 0.0과 0이 각각 표시 될 때 포커스가 비어지기를 원할 때입니다. –

+0

다른 방법을 제안 해주세요. Iam 그냥 여기에 갇혀 –

+0

@ PoojaGaonkar 나는 이것이 특정 전화라고 생각하고 내 충고는 해킹 * 솔루션을 함께 해보려고하는 것입니다 다른 솔루션에 더 많은 문제를 일으킬 수있는 솔루션이 있기 때문에 함께 해결할 수 있습니다. 사소한 귀찮음. –

관련 문제