Al final lo he solucionado con la propiedad
setNextFocusDownId
Pero ojo, si se define esa propiedad a nivel de layout (en el xml) puede dar error.
por lo que se hace en el activity de la siguiente forma:
En el onCreate
{
editText1=(EditText)findViewById(R.id.editText1);
editText2=(EditText)findViewById(R.id.editText2);
editText3=(EditText)findViewById(R.id.editText3);
setUpFocus();
}
private void setUpFocus(){
editText1.setNextFocusDownId(R.id.editText2);
editText2.setNextFocusDownId(R.id.editText8);// you can give focus to any id
editText3.setNextFocusDownId(R.id.editText9);
}