私はこのコードでアンドロイドでソフトキーボードのイベントを処理しようとしています:
public class MainActivity extends Activity implements OnKeyListener {
EditText editText1;
EditText editText2;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText1 = (EditText) findViewById(R.id.editText1);
editText1.setOnKeyListener(this);
editText2 = (EditText) findViewById(R.id.editText2);
editText2.setOnKeyListener(this);
// InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// imm.showSoftInput(editText1, InputMethodManager.SHOW_IMPLICIT);
}
public boolean onKey(View view, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_B|| keyCode ==KeyEvent.KEYCODE_5)
{
editText2.setText("hello");
return true;
}
return false; // pass on to other listeners.
}
}
しかし、bまたは任意のキーを押しても何も生成されません
数字キーを押すと、イベントが生成されました
誰でも私を助けて、私のコードを編集してください。
助けてくれてありがとうが、私はそのコードをトレイに入れ、動作せず、yhisは新しいコードです:
public class MainActivity extends Activity {
EditText editText1;
EditText editText2;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
// InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// imm.showSoftInput(editText1, InputMethodManager.SHOW_IMPLICIT);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_B|| keyCode ==KeyEvent.KEYCODE_5)
{
editText2.setText("hello");
return true;
}
return false; // pass on to other listeners.
}
}
私の問題に従ってくださいよろしく