package com.evancharlton.mileage; import java.util.ArrayList; import java.util.List; import android.text.Editable; import android.text.method.KeyListener; import android.view.KeyEvent; import android.view.View; public class KeyFocuser implements KeyListener { private View m_next; private List<Integer> m_codes = new ArrayList<Integer>(); public KeyFocuser(View next) { this(next, new int[] { KeyEvent.KEYCODE_SHIFT_LEFT, KeyEvent.KEYCODE_SHIFT_RIGHT }); } public KeyFocuser(View next, int code) { this(next, new int[] { code }); } public KeyFocuser(View next, int[] codes) { for (int i = 0; i < codes.length; i++) { m_codes.add(codes[i]); } m_next = next; } public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) { return false; } public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) { if (m_codes.contains(keyCode)) { m_next.requestFocus(); return true; } return false; } }