3

私は編集テキストを持っています。その edittext に、ユーザーが何らかのテキストを入力します。ユーザーがスペース キーを押したときに、何らかのアクションを実行する必要があります。どうすればいいですか。

前もって感謝します。

4

3 に答える 3

3

ユーザーがスペースキーを押したときに何かを行うには、次を使用します-

if((event.getAction()==KeyEvent.ACTION_DOWN)&&(key == KeyEvent.KEYCODE_SPACE)){
//put your code for whatever you what to do when the user presses space here
   }
}

EditText でスペース キーをインターセプトする際の問題

複数の編集テキストがある場合は、上記のコードに

if (edittext.hasFocus()){
    //do something for particular edit text
}

edittext が機能しない理由はわかっていると思います。edittext がフォーカスされている (選択されている) 場合、キー クリックはアクティビティをバイパスし、edittext に直接移動します。これを解決するには、 を edittext の に移動する必要がありonKeyListenerますonKeyListener

代わりに以下のコードを試してください

edittext.setOnKeyListener(new OnKeyListener() {           
        @Override
        public boolean onKey(View v, int key, KeyEvent event) {
            if (event.getAction()==KeyEvent.ACTION_DOWN && key == KeyEvent.KEYCODE_ENTER) {
                //operation that you want on key press
                return true;
            }
            return false;
        }
    });

これが役立つことを願っています

于 2012-11-15T07:49:15.787 に答える
1

TextWatcherEditTextに使用する方が良いと思います。この方法で実装できます

 EditText et = (EditText)findViewById(R.id.ed1);

    et.addTextChangedListener(new TextWatcher()
    {
        public void afterTextChanged(Editable s)
        {
              // Abstract Method of TextWatcher Interface.
        }
        public void beforeTextChanged(CharSequence s,
                int start, int count, int after)
        {
            // Abstract Method of TextWatcher Interface.
        }
        public void onTextChanged(CharSequence s,
                int start, int before, int count)
        {
            System.out.println(s);
            if(s.toString().equals(" "))
            {
                Toast.makeText(getApplicationContext(), "Space is clicked", Toast.LENGTH_LONG).show();
            }
        }
    });
于 2012-11-15T08:08:32.670 に答える