WEB开发网
开发学院手机开发Android 开发 Android 让你的SeekBar 也支持长按事件 阅读

Android 让你的SeekBar 也支持长按事件

 2010-09-06 08:38:00 来源:WEB开发网   
核心提示:SeekBar 本身有就是一个View 对象,既然是View 对象那也证明它有setOnLongClickListener 事件,Android 让你的SeekBar 也支持长按事件,众所周知,这个事件是让一个View 对象拥有长按功能,当在规定的时间内停住即认为其是一个长按动作3、实现长按事件的接口函数4、并为重写的

SeekBar 本身有就是一个View 对象,既然是View 对象那也证明它有setOnLongClickListener 事件,众所周知,这个事件是让一个View 对象拥有长按功能,进而达到我们想要实现的操作。

为SeekBar 添加长按事件监听如下:

SeekBar.setOnLongClickListener(new OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

// TODO Auto-generated method stub

return false;

}

});

那么,我们来试试,它是否可以成立 ,为它添加一个Toast :

Toast.makeText(ttActivty.this, "fda", 100).show();

一般来说,我们运行项目,然后长按SeekBar 即能够把Toast Show 出来。那么试一下吧,试了之后结果很让人费解,因为我们知道SeekBar 继承自AbsSeekBar 而AbsSeekBar 又是继承自ProgressBar ,而ProgressBar 的长按事件是可行的,可是这里我们同样的操作却得不到效果,Toast 并不能像我们如期想像的一样显示出来。那是不是就是说SeekBar 不支持长按事件呢?这点我也不好下定论,总之我们为其他同样的View 对象的操作是可行的。好了,既然SeekBar 可能不支持长按事件,那我们就为它模拟一个长按事件,模拟思路如下:

1、继承SeekBar 重写内部的事件和方法

2、实现一个线程,当在规定的时间内停住即认为其是一个长按动作

3、实现长按事件的接口函数

4、并为重写的SeekBar 添加自己的OnSeekBarChangeListener 监听事件

具体操作看如下:

1、继承SeekBar 重写内部的事件和方法

代码如下:

public class seekBarDemo extends SeekBar implements OnTouchListener

2、实现一个线程,当在规定的时间内停住即认为其是一个长按动作

这里实现一个自己的Runable 对象,向Handler 对象发送消息,代码如下:

/**

* 为runable 赋值

*/

runable = new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

do {

i++;

try {

Thread.sleep(400);

Message msg = hand.obtainMessage();

msg.arg1 = i;

1 2 3 4 5 6  下一页

Tags:Android SeekBar 支持

编辑录入:coldstar [复制链接] [打 印]
赞助商链接