是的,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
的文本内容。