2013-01-31 9 views

Odpowiedz

5

Możesz użyć TextWatcher w EditText i poradzić sobie z tym, co chcesz zrobić ze swoim użytkownikiem Dane wejściowe Natychmiast.

tutaj jest przykładem formatowania natychmiast po danych wejściowych użytkownika

final EditText EditTxtFinancialCode = (EditText) findViewById(R.id.edtNewCpFinancialCode); 


    EditTxtFinancialCode.addTextChangedListener(new TextWatcher() { 

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

      String a = ""; 
      boolean flag = true; 
      String eachBlock[] = EditTxtFinancialCode.getText().toString().split("-"); 
      for (int i = 0; i < eachBlock.length; i++) { 
       if (eachBlock[i].length() > 4) { 
        flag = false; 
       } 
      } 
      if (flag) { 

       EditTxtFinancialCode.setOnKeyListener(new OnKeyListener() { 

        @Override 
        public boolean onKey(View v, int keyCode, KeyEvent event) { 

         if (keyCode == KeyEvent.KEYCODE_DEL) 
          KeyDel = 1; 
         return false; 
        } 

       }); 

       if (KeyDel == 0) { 

        if (((EditTxtFinancialCode.getText().length() + 1) % 5) == 0) { 

         if (EditTxtFinancialCode.getText().toString().split("-").length <= 2) { 
          EditTxtFinancialCode.setText(EditTxtFinancialCode.getText() + "-"); 
          EditTxtFinancialCode.setSelection(EditTxtFinancialCode.getText().length()); 
         } 

        } 
        a = EditTxtFinancialCode.getText().toString(); 
       } else { 
        a = EditTxtFinancialCode.getText().toString(); 
        KeyDel = 0; 
       } 

      } else { 
       EditTxtFinancialCode.setText(a); 

      } 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 
     @Override 
     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 
+0

na przykład, aby znaleźć obszar okręgu prostu wprowadzając promień w EditText muszę odpowiedzieć poniżej tego pola EditText – user2019287

+2

+1, to jest naprawdę wielki odpowiedź Arash. @lambda: proszę, nie dodawajcie rzeczy na własną rękę. możesz skomentować odpowiedź, a nawet zamieścić osobną odpowiedź, jeśli wiesz, że twoja odpowiedź stworzy różnicę. –

14

Ponieważ masz dość abstrakcyjne pytanie, niech próbują odpowiedzieć równie ogólna:

w twojej onCreate() oświadczyć, i oddać swój EditText

EditText editText = (EditText) findViewById(R.id.editText); 
editText.addTextChangedListener(filterTextWatcher); 

A potem, pozaonCreate(), skonfigurować filterTextWatcher tak:

private TextWatcher filterTextWatcher = new TextWatcher() { 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     // DO THE CALCULATIONS HERE AND SHOW THE RESULT AS PER YOUR CALCULATIONS 

     int radius = 0; 
     radius = Integer.valueof(s.toString); 
     double area = Math.PI * radius * radius; 
    } 

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

    } 

    @Override 
    public void afterTextChanged(Editable s) { 

    } 
}; 

EDIT:

Zaktualizowany kod z możliwych obliczeń. (NIETESTOWANY KOD: Właśnie wpisane IN bez badań zmodyfikować GDZIE KONIECZNE.)

Przeczytaj więcej o TextWatcher's here

A oto kilka przykładów, które pomogą Ci zacząć:

  1. http://www.android-ever.com/2012/06/android-edittext-textwatcher-example.html
  2. http://www.cybernetikz.com/blog/android-textwatcher-example/
  3. http://www.allappsdevelopers.com/TopicDetail.aspx?TopicID=22b00052-dad0-4e09-a07e-b74f115ab247
  4. http://myandroidsolutions.blogspot.in/2012/06/android-edittext-change-listener.html
+0

na przykład, aby znaleźć obszar okręgu po prostu wpisując promień w edittext i potrzebuję odpowiedzi poniżej do tego pola editekstowego – user2019287

+0

@ user2019287: Promień na podstawie czego? Powierzchnia, średnica, obwód? Poza tym powinieneś być w stanie kodować w swoich formułach eh fella? Uzyskaj swoją formułę tutaj: [Promień] (http://en.wikipedia.org/wiki/Radius). –

+0

obszar = math.pi * promień * promień – user2019287

2

http://developer.android.com/reference/android/widget/TextView.OnEditorActionListener.html

Zrób słuchacza.

myTextBox.addTextChangedListener(new TextWatcher() { 

    public void afterTextChanged(Editable s) { 
    } 

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

    public void onTextChanged(CharSequence s, int start, 
    int before, int count) { 
    TextView myOutputBox = (TextView) findViewById(R.id.myOutputBox); 
    myOutputBox.setText(s); 
    } 
    }); 

zobaczyć http://www.mysamplecode.com/2012/06/android-edittext-text-change-listener.html

Powiązane problemy