onkeylistener不适用于imagebutton

时间:2012-05-16 17:44:42

标签: android imagebutton onclicklistener

我的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行中不要输入

请帮忙

1 个答案:

答案 0 :(得分: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();
    } 
};

请注意,我们已将OnKeyListener更改为OnClickListener,第一个监听键盘活动,而第二个监听用户与对象的互动,方法是用手指点击它们(按)或使用触控板或设备可以执行的任何操作。

作为sido笔记 如果你很好奇为什么即使你按下键盘键也不能正常工作,问题来自于视图没有集中的事实。对于在其中收听键盘事件的视图,首先需要选择它们,这听起来合乎逻辑吗?