0

我的 onkeylistener 事件有问题,我的代码是这样的

public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pnt_articulo);
    imbAgregarArt = (ImageButton)findViewById(R.id.imbAgregarArt);
    imbAgregarArt.setOnKeyListener(key);
}

OnKeyListener key = new OnKeyListener() {
    @Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.ACTION_DOWN) {
    Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show();
    return true;
        }
        return false;
    }
};

我使用调试停止在 Toast 行不输入

请帮忙

4

1 回答 1

2

您正在做的是侦听按键事件,即键盘按下等,为此您的代码非常好。确保ImageButton选中并按任意键,您的Toast将出现。

由于这是一种非常奇怪的行为,您可能会追求OnClickListener

....
    imbAgregarArt.setOnClickListener(click);
}

OnClickListener click = new OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show();
    } 
};

请注意,我们已将 更改OnKeyListenerOnClickListener,第一个监听键盘活动,而第二个监听用户通过点击对象与对象的交互,无论是用手指(按下)还是使用触控板或设备可以选择的任何东西做。

作为一个 sido 说明 如果您对为什么即使您按下键盘键也无法正常工作感到好奇,那么问题来自视图没有聚焦的事实。要让视图监听其中的键盘事件,首先需要选择它们,这听起来合乎逻辑吧?

于 2012-05-16T17:54:08.107 回答