Я создал класс (InputControl), который расширяет представление моего основного класса (Main) и фокусируется на экране. У меня есть кнопка на основном макете xml, который вызывает control() и настраивает мое представление InputControl, откуда я беру пользовательский ввод.Android; Смущенный мнениями?
Как я могу вернуться к макету xml из класса представления InputControl?
public class Main extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
InputControl = new InputControl(this);
}
//......SNIP!
public void control(){
setContentView(InputControl);
InputControl.requestFocus();
}
}
public class InputControl extends View implements OnTouchListener {
public InputControl(Context context) {
super(context);
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
}
public boolean onTouch(View view, MotionEvent event) {
//...I AM CAPTURING USER TOUCH EVENTS HERE
}
}
Привет, это как в основном решена проблема. Я действительно сделал это раньше, но это не сработало, и я не мог понять, почему, но вы побудили меня вернуться и попробовать еще раз, и я его отсортировал почти;) – jwbensley
У меня есть «setFocusableInTouchMode (правда);" на моем классе InputControl, чтобы я мог записывать все ключевые события, я захватываю касание экрана, но также хочу использовать клавиши регулировки громкости. Поскольку я захватываю системные ключи, такие как клавиши громкости, когда я нажимаю кнопку «Назад», я не закрываю действие и не возвращаюсь к основному, если не принимать эту строку (предположительно, потому что мой класс перехватывает событие), но затем я не может захватить нажатие клавиш громкости, есть ли способ обойти это? – jwbensley
@javano: Если вы снимаете кнопку «Назад», вам нужно будет проверить, когда она нажата. В идеале вы должны передать его нормальному обработчику событий (супер), который будет обрабатывать его. В противном случае вызов finish() будет прекращать действие таким же образом, как обычно, кнопка «Назад», но только использовать финиш(), если вам действительно нужно. – Squonk