Android 按钮长按下去重复执行某个动作,放开后停止执行动作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android 按钮长按下去重复执行某个动作,放开后停止执行动作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1737字,纯文字阅读大概需要3分钟。
内容图文
![Android 按钮长按下去重复执行某个动作,放开后停止执行动作](/upload/InfoBanner/zyjiaocheng/1334/6cbe3355bc244e8d86860eeeb9f9b2ed.jpg)
Android开发中,常遇到一种需求,即按钮长按下去重复执行某个动作,放开后停止执行动作。网上找了许多代码,都没有适合的,于是自己动手写了一个。
基本思路是:首先设置一个标识变量,用于标识是否处于按下的状态。当按钮按下的时候,将标识变量设置为true,启动一个线程用于重复执行某个动作(当标识变量为true时,循环执行动作,当为false跳出循环,结束动作);当按钮弹起来的时候,将标识变量设置为false。
1、首先,设置标识变量
1 private boolean booleanConnect = false; 2private Button rightSend;
2、然后,初始化变量
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); rightSend = (Button)findViewById(R.id.BtnRight); longPress = false; rightSend.setOnTouchListener(new View.OnTouchListener() { @Override publicboolean onTouch(View v, MotionEvent event) { String str = "OND\n"; String strSendData = new String(str); LongTouchSendCmd(MainActivity.this, strSendData, event); sendData.setText("");returnfalse; } } ); }
2、接着,实现按钮按下的重复执行动作
private void LongTouchSendCmd(final Activity activity, final String cmd, MotionEvent event){ if (booleanConnect == false) { Toast.makeText(activity, "请先连接设备", Toast.LENGTH_SHORT).show(); return; } switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { longPress = true; Toast.makeText(activity, "开始发送", Toast.LENGTH_SHORT).show(); longPressSendCmdThread = new Thread() { publicvoid run() { super.run(); while (true) { if (longPress == true)//长按连续发送命令 { try {
//todo some action 在这里添加代码,执行某个动作 //String strSendData = cmd; //connectedThread.write(strSendData.getBytes());//接收数据 Thread.sleep(1000);//1秒发送一次 } catch (InterruptedException e) { e.printStackTrace(); } }else { break;//没有按下,退出循环 } } } }; longPressSendCmdThread.start(); break; } case MotionEvent.ACTION_UP:{ longPress = false; Toast.makeText(activity, "结束发送", Toast.LENGTH_SHORT).show(); } } }
执行的结果:
原文:http://www.cnblogs.com/cv-pr/p/4764879.html
内容总结
以上是互联网集市为您收集整理的Android 按钮长按下去重复执行某个动作,放开后停止执行动作全部内容,希望文章能够帮你解决Android 按钮长按下去重复执行某个动作,放开后停止执行动作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。