2009-05-24 9 views
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; 

    } 
} 

私は、次のコードScrollView

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;   
    } 
} 

を持っている私はまた、falseを返すためにdispatchKeyEventメソッドをオーバーライドしようとしたが、それはどちらか動作しませんでした。私はここで間違って何をしていますか?

ありがとうございます!

答えて

1

私はそれを理解しました。これが機能しない理由は、子ビューにフォーカスがないためです。

子ビューのコンストラクタにrequestFocus()プロパティを設定すると、問題が解決されました。

1

また、私はあなたのアクティビティではなく、ビューでは、キーを傍受しなければならないと思います。

+0

アクティビティのキー入力を傍受すると、処理するビューにどのように送信すればよいですか?ビューは、キーを押すことに基づいていくつかの描画を行う必要があります。 ありがとうございます。 – Maulin

関連する問題