Domanda

I create the multiple EditText and after that we get the vale of each EditText but now I want to compare that value with a given string without clicking on any button.

È stato utile?

Soluzione 2

You might want to use your EditText's addTextChangedListener() method and use a TextWatcher. You will have the following methods available for you:

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

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

    @Override
    public void afterTextChanged(Editable s) {}

Altri suggerimenti

Use text watcher like following.

// replace R.id.editText1 with your edittext id
    final EditText myEditText = (EditText) findViewById(R.id.editText1);

    final int maxTextLength = 8;//length after that you want to compare string
    InputFilter[] filterArray = new InputFilter[1];
    filterArray[0] = new InputFilter.LengthFilter(maxTextLength);
    myEditText.setFilters(filterArray);

    myEditText.addTextChangedListener(new TextWatcher(){


   @Override
   public void afterTextChanged(Editable arg0) {
    }

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

   }

   @Override
   public void onTextChanged(CharSequence txtWatcherStr, int start, int before, int count){
       if(count==maxTextLength ){
         if(myEditText .getText().toString().equals("Some String")){
             // do something  
        }
    }
 }
});

You can listen for TextChange:

editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        //do stuff
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        //do stuff
    }

    @Override
    public void afterTextChanged(Editable s) {
        //do stuff
    }
});

Or listen for specific key pressed:

editText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        //do stuff
        return false;
    }
});

You can use addTextChangeListener event for the edit Text. You can perform desired operation on text change

editText.addTextChangedListener(new TextWatcher()
        {

            @Override
            public void afterTextChanged(Editable s) 
            {

            }

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

            }

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

            }

        });

look at this code snippet

Field1.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) {
      ...
   }
  });
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top