是的,Android的GestureDetector可以檢測長按。要檢測長按,您需要設置一個手勢監聽器并覆蓋onLongPress()
方法。以下是一個簡單的示例:
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private GestureDetector gestureDetector;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
gestureDetector = new GestureDetector(this, new GestureListener());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event) || super.onTouchEvent(event);
}
private class GestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public void onLongPress(MotionEvent e) {
super.onLongPress(e);
textView.setText("長按檢測到");
}
}
}
在這個示例中,我們創建了一個GestureDetector
實例并設置了一個自定義的GestureListener
。在GestureListener
中,我們覆蓋了onLongPress()
方法,當檢測到長按事件時,它會修改TextView
的文本內容。