2016-09-09 2 views
0

Ich habe eine EditText mit einer ToggleButton mit Option Füße/Zoll und Zentimeter. Wenn ein Benutzer die Option Fuß/Zoll auswählt und seine Höhe eingibt. Jetzt möchte ich, wenn der Benutzer Zentimeter Option aus ToggleButton wählt, dann sollte es automatisch seine Höhe in Zentimeter ändern.Ändern der Personenhöhe auf Zentimeter beim Klicken auf ToggleButton

Ich habe so etwas wie dies versucht:

 public void onClick(View view) { 
     switch (view.getId()) 
     { 
      case R.id.btnCm: 
       toggleHeightButton(R.id.btnCm,R.id.btnFeet,false); 
       break; 
      case R.id.btnFeet: 
       toggleHeightButton(R.id.btnFeet,R.id.btnCm,true); 
       enter_height.addTextChangedListener(new CustomTextWatcher(enter_height)); 
       break; 
      case R.id.btnKg: 
       toggleweightButton(R.id.btnKg,R.id.btnpound,false); 
       break; 
      case R.id.btnpound: 
       toggleweightButton(R.id.btnpound,R.id.btnKg,true); 
       break; 

     } 
    } 

    public class CustomTextWatcher implements TextWatcher { 
     private EditText mEditText; 
    public CustomTextWatcher(EditText enter_height) { 
     mEditText = enter_height; 
    } 



    public void beforeTextChanged(CharSequence s, int start, int count, 
            int after) { 
    } 

    public void onTextChanged(CharSequence s, int start, int before, int count) { 
    } 

    public void afterTextChanged(Editable s) { 
     int count = s.length(); 
     String str = s.toString(); 
     if (count == 1) { 
      str = str + "'"; 
     } else if (count == 2) { 
      return; 
     } else if (count == 3) { 
      str = str + "\""; 
     } else if ((count > 4) && (str.charAt(str.length() - 1) != '\"')){ 
      str = str.substring(0, str.length() - 2) + str.charAt(str.length() - 1) 
        + "\""; 
     } else { 
      return; 
     } 

     mEditText.setText(str); 
     mEditText.setSelection(mEditText.getText().length()); 
    } 
} 

mir jemand von hier sagen kann, wie kann ich nähern. Ich wollte auch die Höhe bestätigen.

+0

Mögliches Duplikat von [Seltsames Problem beim Umwandeln von Fuß und Zoll in Zentimeter und umgekehrt] (http://stackoverflow.com/questions/17062094/strange-issue-in-converting-feet-and-inches-to-centimeter -und umgekehrt) –

Antwort

0

In Ihrem onToggleListener/OnClickListener()

//toCm is true if converting from inches to centimeters 
private void toggleHeight(int height, boolean toCm) { 

    if (height > 0) { 
     if (toCm) { 
      //2.54cm is equal to 1inch 
      return height/2.54; 
     } else { 
      return height * 2.54. 
     } 
    } else { 
     return 0; 
    } 
} 

Dann können Sie Ihre mEditText auf die neue Höhe eingestellt, die es dem Benutzer angezeigt wird.

Es wird einen gewissen Präzisionsverlust geben, aber da Sie dies dem Benutzer einfach anzeigen möchten, sollte dies gut funktionieren.

Verwandte Themen