public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_TAB && event.getAction()==KeyEvent.ACTION_DOWN) { View currentFocus = getCurrentFocus(); if (currentFocus!=null) { View next = currentFocus.focusSearch(View.FOCUS_DOWN); if (next!=null) { next.requestFocus(); } } return true; } return super.dispatchKeyEvent(event); }
final EditText code1=((EditText)view.findViewById(R.id.code1)); final EditText code2=((EditText)view.findViewById(R.id.code2)); final EditText code3=((EditText)view.findViewById(R.id.code3)); final EditText code4=((EditText)view.findViewById(R.id.code4)); OnKeyListener key=new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(!((EditText) v).toString().isEmpty()) v.focusSearch(View.FOCUS_RIGHT).requestFocus(); return false; } }; code1.setOnKeyListener(key); code2.setOnKeyListener(key); code3.setOnKeyListener(key);
Float rating = 4f; ratingBar.setFocusable(true); ratingBar.setTag(rating); ratingBar.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if(keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) { v.setPressed(false); myRatingDialog.show(); } else if(keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { if (v.focusSearch(View.FOCUS_LEFT) != null) v.focusSearch(View.FOCUS_LEFT).requestFocus(); } else if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { if (v.focusSearch(View.FOCUS_RIGHT) != null) v.focusSearch(View.FOCUS_RIGHT).requestFocus(); } } return false; } }); ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { ratingBar.setRating((Float) ratingBar.getTag()); } });
} else { return v.focusSearch(direction);
private void focusView(View v, int focusDirection) { EditTextMultiLineNoEnter focusableEditText = (EditTextMultiLineNoEnter) v.focusSearch(focusDirection); if (focusableEditText != null) { focusableEditText.requestFocus(); focusableEditText.setSelection(focusableEditText.getText().length()); } }