2

ScrollView私は子ビューを持つ親を持っています。ユーザーが戻るボタンを押したときに、子ビューでイベントを処理する必要があります。私はいくつかのことを試しましたが、どれもうまくいかないようです。戻るボタンを押すと、アクティビティが強制終了されます。

public class GameScrollView extends ScrollView{

     public GameScrollView(Context context) {
          super(context);
     }
     @Override
     public boolean onInterceptTouchEvent (MotionEvent ev){
          return false;

     }
     @Override
     public boolean onKeyDown (int keyCode, KeyEvent event){
          return false;

     }
}

子ビューには、次のコードがあります

public class GameView extends View implements OnTouchListener, onKeyListener{

     public boolean onKey(View v, int keyCode, KeyEvent event){
          if(keyCode == KeyEvent.KEYCODE_BACK){
                    //do stuff
          }
          invalidate();
          return true;        
     }
}

ScrollViewメソッドをオーバーライドしてfalseを返すことも試みましたdispatchKeyEventが、それもうまくいきませんでした。ここで何が間違っていますか?

ありがとう!

4

2 に答える 2

1
@Override 
public boolean onKeyDown(int i, KeyEvent event) {

      if (i == KeyEvent.KEYCODE_BACK) {
          return true;
        else {
          super.onKeyDown(i, event);
          return true;
        }
      }
      return false;
    }

また、ビューではなくアクティビティでキープレスをインターセプトする必要があると思います。

于 2009-05-25T03:19:25.883 に答える