前提・実現したいこと
配置したビュー(WebView)の上でマウスカーソルがスライドした時に画面が変わる機能(クラス)を作成し、マウスカーソルがWebViewの上をスライドした時にアクティビティを別のアクティビティに切り替えたい。
※検出したいのはタッチでのモーションイベント(onTouchEvent)ではなく、Androidスマートフォンにマウスをつないだ際のカーソルのモーションイベント(onGenericMotionEvent)
発生している問題・エラーメッセージ
ビュー(WebView)の上でマウスカーソルがスライドした時に反応し、アクティビティ切り替え処理をするリスナクラスを作成したいのですが、赤い波線が出てしまいリスナのクラス定義が上手くいきません。
以下のコードを見て何かわかる方、アドバイスを賜りたいです。
エラーメッセージ
該当のソースコード
Java
1package com.webserva.wings.android.ongenericmotionevent; 2 3import androidx.appcompat.app.AppCompatActivity; 4import android.content.Intent; 5import android.os.Bundle; 6import android.util.Log; 7import android.view.MotionEvent; 8import android.view.View; 9import android.webkit.WebView; 10 11public class MainActivity extends AppCompatActivity { 12 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_main); 17 18 //画面部品WebViewを取得 19 WebView webview = findViewById(R.id.WebBrowser); 20 21 //リスナクラスのインスタンス生成 22 MouseSlideListener listener = new MouseSlideListener(); 23 24 //画面部品WebViewにリスナを設定 25 webview.setOnGenericMotionListener(listener); 26 27 } 28 29 //ジェネリックモーションイベント(onGenericMotion)である「マウスのスライド」のリスナクラス 30 private class MouseSlideListener implements View.OnGenericMotionListener,View.OnHoverListener { 31 32 @Override 33 public boolean onGenericMotion(View v, MotionEvent event) { 34 35 @Override 36 public boolean onHover(View v, MotionEvent event){ 37 38 if (event.getAction() == MotionEvent.ACTION_HOVER_MOVE) { 39 Intent intent = new Intent(MainActivity.this,success.class); 40 startActivity(intent); 41 } 42 return false; 43 } 44 45 } 46 47 } 48 49} 50