Android开发-按钮的点击和长按-步骤方法
2016-07-21 14:52
417 查看
一、XML布局
在activity_main.xml中适当位置添加Button组件。
二、设置监听
在OnCreate()中找到Button并添加点击和长按的监听事件。
三、定义监听事件
四、定义Handler
1、Handler 声明
在activity_main.xml中适当位置添加Button组件。
<Button android:id="@+id/btn_mid" android:layout_width="150dp" android:layout_height="150dp" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:background="@drawable/btn_mid"/>
二、设置监听
在OnCreate()中找到Button并添加点击和长按的监听事件。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btmid = (Button)findViewById(R.id.btn_mid); btmid.setOnTouchListener(new MidOnTouchListener()); }
三、定义监听事件
class MidOnTouchListener implements View.OnTouchListener { private int long_pressed = 0;<span style="white-space:pre"> </span>// 长按标志符 @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN){<span style="white-space:pre"> </span>// 按钮被按下 // 启动一个线程 Thread t = new Thread() { @Override public void run() { super.run(); try { Thread.sleep(250);<span style="white-space:pre"> </span>// 超过指定时长,判断为长按 }catch (InterruptedException e) { e.printStackTrace(); } // 线程未被打断 if(long_pressed == 0) { long_pressed = 1; // 标识符置位 hd.sendEmptyMessage(111); // 发送消息到Handler,执行长按按下对应的方法 }else { long_pressed = 0; } } }; t.start(); } if(event.getAction() == MotionEvent.ACTION_UP){ if(long_pressed == 0) { // 标识符未置位 long_pressed = -1; // TODO: 执行点击对应的方法 }else if(long_pressed == 1) { // 标识符已置位,则为长按 // TODO: 执行长按释放对应的方法 long_pressed = 0; } } return false; } }
四、定义Handler
1、Handler 声明
private Handler hd;2、Handler 定义
hd = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what == 111) { // TODO: 执行长按按下对应的方法 } } };
相关文章推荐
- [转载]Activity中ConfigChanges属性的用法
- android之定时器AlarmManager
- Android实现表情 抓取新浪表情
- android上改变listView的选中颜色
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- Winform消除button按下出现的虚线简单实现方法
- Android编程之Button控件用法实例分析
- 在ASP.NET 2.0中操作数据之四十五:DataList和Repeater里的自定义Button
- ASP.NET 中 Button、LinkButton和ImageButton 三种控件的使用详解
- Jquery自定义button按钮的几种方法
- 验证控件与Button的OnClientClick事件详细解析
- 基于jQuery的Spin Button自定义文本框数值自增或自减
- 关于asp.net button按钮的OnClick和OnClientClick事件
- 关于WPF使用MultiConverter控制Button状态的详细介绍
- button没写type=button会导致点击时提交
- input、button的不同type值在ajax提交表单时导致的陷阱
- android开发环境遇到adt无法启动的问题分析及解决方法
- Android开发笔记之:如何屏蔽Button setClickable与setEnabled
- Android开发 旋转屏幕导致Activity重建解决方法
- Android 控件(button)对齐方法实现详解