Android EditText onKeyUp

时间:2014-02-25 16:29:04

标签: android android-edittext keyup

刚开始使用android,想在edittext上找出keyUp。我在keyUp上遵循各种教程,但只能按下后退按钮。我想让它在类型上工作。就像电话簿一样,当你输入时会触发一些事件。

我的代码:

    private EditText input;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contacts);
        addKeyListener();
    }

    public void addKeyListener() {
        input = (EditText) findViewById(R.id.names);
        input.setOnKeyListener(new OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Toast.makeText(Contacts.this,
                        input.getText() + " you have typed", Toast.LENGTH_SHORT)
                        .show();
                return true;

            }
        });

    }

当前代码仅适用于后退按钮,如果我按后退按钮,则Toast会出现。

2 个答案:

答案 0 :(得分:3)

import android.text.TextWatcher;

您可以在文本字段中添加TextWatcher。在你的情况下,这会 看起来像:

  EditText in = new EditText(this); 
  in.addTextChangedListener(new TextWatcher() { 
    public void onTextChanged(CharSequence cs, int s, int b, int c) { 
      Log.i("Key:", cs.toString()); 
    } 
    public void afterTextChanged(Editable editable) { } 
    public void beforeTextChanged(CharSequence cs, int i, int j, int 
k) { } 
  }); 

最好,

答案 1 :(得分:0)

如果用户在EditText上输入,那么Chack和onTextChanged可以使用你的触发器:) 希望它的帮助:)

    EditText mTextPhoneNumber;

    mTextPhoneNumber = (EditText)findViewById(R.id.example);

        mTextPhoneNumber.addTextChangedListener(new TextWatcher() {
                            @Override
                            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                            }

                            @Override
                            public void onTextChanged(CharSequence s, int start, int before, int count) {
                              Log.d("LOGER" , s.length()+""); // show the count of the Text in the TextView                        

                            }

                            @Override
                            public void afterTextChanged(Editable s) {

                            }


});