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(); }
    }
}

次に、これらのアイテムの1つを作成し、それをすべてに割り当てます。

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);

これで、リスナーはメモリに1回だけ表示され、各アイテムには引き続き固有の機能があります。

于 2012-10-07T19:07:33.457 に答える