0

在按钮表(自定义键盘)中测试按钮触摸的正确方法是什么?每个按钮的 OnTouch 侦听器似乎很麻烦。

4

1 回答 1

1

这并不麻烦。但是,我建议对所有这些都使用相同的侦听器。(这是使用OnTouchListener;OnClickListener在您的情况下可能会更好。)

public class MyButtonTouchListener implements OnTouchListener {
    @Override
    public boolean onTouch(View v, MotionEvent ev) {
        Button b = (Button) v;
        String buttonText = b.getText().toString();
        // Do whatever, based on buttonText. Example: if (buttonText.equals("#")) { doPound(); }
    }
}

然后,您创建这些项目之一,并将其​​分配给所有项目。

MyButtonTouchListener listener = new MyButtonTouchListener();
ArrayList<Button> myButtons = new ArrayList<Button>();
// Add all your Button objects to the ArrayList.
for (Button b : myButtons)
    b.setOnTouchListener(listener);

现在,您的听众只在内存中出现一次,并且每个项目仍然具有独特的功能。

于 2012-10-07T19:07:33.457 回答