0
メインクラス(Main)のビューを拡張し、画面のフォーカスをとるクラス(InputControl)を作成しました。私はcontrol()を呼び出してInputControlビューを設定するメインのxmlレイアウトのボタンを持っています。そこからユーザの入力を取得します。Android;ビューで混乱していますか?
InputControlビュークラスからxmlレイアウトに戻すにはどうすればよいですか?
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クラスですべてのキーイベントをキャプチャできるように、私は画面に触れるだけでなく、ボリュームキーを使用したいと思います。ボリュームキーのようなシステムキーをキャプチャしているので、Backボタンを押すと、アクティビティを閉じずにメインラインに戻りません(私のクラスがイベントをインターセプトしているので推測できますが)ボリュームキーの押下をキャプチャすることはできません、これの周りには何か方法はありますか? – jwbensley
@ javano:Backボタンをキャプチャしている場合は、いつ押されたかを確認する必要があります。理想的には、それを処理する通常のキーイベントハンドラ(super)に渡す必要があります。代わりに、finish()を呼び出すと、Backボタンと同じようにアクティビティが終了しますが、実際にはfinish()だけを使用します。 – Squonk