当用户长按android屏幕时,我尝试显示祝酒....但没有任何显示。为什么?简单的触摸显示吐司“触摸”工作正常!错误在哪里?
public class MainActivity extends Activity {
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Runnable mLongPressed = new Runnable() {
public void run() {
Toast.makeText(getBaseContext(),
"Long press",
Toast.LENGTH_LONG).show();
}
};
@Override
public boolean onTouchEvent(MotionEvent event){
if(event.getAction() == MotionEvent.ACTION_DOWN)
Toast.makeText(getBaseContext(),
" touch ",
Toast.LENGTH_LONG).show();
handler.postDelayed(mLongPressed, 1000);
if((event.getAction() == MotionEvent.ACTION_MOVE)||(event.getAction() == MotionEvent.ACTION_UP))
handler.removeCallbacks(mLongPressed);
return super.onTouchEvent(event);
}
答案 0 :(得分:1)
您应该使用GestureDetector来确定长按,如下所示:
final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
public void onLongPress(MotionEvent e) {
Toast.makeText(getBaseContext(), "Long press", Toast.LENGTH_LONG).show();
}
});
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
};
答案 1 :(得分:0)
段:
public class MainActivity extends Activity implements OnLongClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View yourView = (View) findViewById(R.id.longclickview);
yourView.setOnLongClickListener(this);
}
@Override
public boolean onLongClick(View v) {
Toast.makeText(getBaseContext(),
"Long press",
Toast.LENGTH_LONG).show();
return false;
}