3

edtitextを変更するたびに、このダッシュ「-」などの文字を追加するにはどうすればよいですか。たとえば、ユーザーがAと入力すると、編集テキストのテキストはAになります。次に、ユーザーは入力して文字Bと入力すると、編集テキストはABになります。これを実装しますか?ありがとう

name = (EditText)findViewById(R.id.editText1);
        name.addTextChangedListener(new TextWatcher(){
             public void afterTextChanged(Editable s) {

                 name.setText("-");
                }
     public void beforeTextChanged(CharSequence s, int start, int count, int after){}
       public void onTextChanged(CharSequence s, int start, int before, int count){


               }
4

4 に答える 4

4

Android Doc で説明されているように、無限ループが発生しています

ただし、無限ループに陥らないように注意してください。変更を加えると、このメソッドが再帰的に再度呼び出されるためです。

したがって、無限ループを回避するための条件を課すだけです。例えば、

name.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
            if(s.charAt(s.length()-1)!='-'){
                s.append("-");
            }

        }

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

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

    });
于 2011-09-18T09:03:14.617 に答える
1

TextWatcherを使用して、を追加しaddTextChangedListener()ます。

于 2011-09-18T07:06:53.003 に答える
1

-文字を追加しますbeforeTextChagned

  name = (EditText)findViewById(R.id.editText1);
  name.addTextChangedListener(new TextWatcher() {
         public void beforeTextChanged(CharSequence s, int start, int count, int after) {
             name.setText(s+"-");
         }
         public void afterTextChanged(Editable s){}
         public void onTextChanged(CharSequence s, int start, int before, int count){}
  }
于 2011-09-18T07:29:38.243 に答える
0
    name = (EditText)findViewById(R.id.editText1);
            name.addTextChangedListener(new TextWatcher(){
                 public void afterTextChanged(Editable s) {
               try{    
                     name.setText(s.toString()+"-");
               }catch(exception e)
              {
               e.printStackTrace();
              } 
                    }
         public void beforeTextChanged(CharSequence s, int start, int count, int after){}
           public void onTextChanged(CharSequence s, int start, int before, int count){

               }
于 2011-09-18T07:18:40.140 に答える