onLongClickListener的使用
1. 引入:
在许多的页面中会出现一些删除的效果,就是当长时间的按在某张图片上面的时候,会在图片上方添加一个删除的按钮。这样的效果是如何实现的呢?
2. 如何实现:
前面我们提到过GestureDetector这个对象和onGestureListener这个监听器的。还记得里面有个方法吗?onLongPress(MotionEvent e)这个方法吗?
这个可以捕获长时间按着的事件,当然一般情况下不推荐使用这个方法。
下面我们接触一个新的监听器:onLongClickListener,它可以很好的完成这个效果。
这个类我认为是专门为长时间按下而创建的监听器。
实现代码:
public class LongPressListen extends Activity implements OnLongClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linear = new LinearLayout(this); linear.setOrientation(LinearLayout.VERTICAL); linear.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
Button btn = new Button(this); btn.setText("click here"); btn.setOnLongClickListener(this); linear.addView(btn); this.addContentView(linear, new LayoutParams(newLayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT))); } @Override public boolean onLongClick(View v) { Toast.makeText(LongPressListen.this, "click long time", Toast.LENGTH_LONG).show(); return false; } } |
这个是比较简单的,但是结合着实例使用的时候往往会比较难。