遇到的问题以及解决方法(长按操作)
来源:互联网 发布:刚度矩阵 编辑:程序博客网 时间:2024/06/07 00:14
最近工作中遇到的一个小问题,记录一下.
需求是这样的,当按钮点击的时候,响应A事件,当按钮长按时响应B事件,当长按结束或者B事件执行一定次数后,结束B事件.
思路:
1.给按钮设置点击事件,响应A
2.给按钮摄者长按事件,响应B
3.给按钮添加onTouchListener
上代码
MainActivity,处理逻辑
public class MainActivity extends AppCompatActivity implements View.OnClickListener, View.OnLongClickListener, View.OnTouchListener { private static final String TAG = MainActivity.class.getSimpleName(); private Button btn; private MyThread myThread; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(this); btn.setOnLongClickListener(this); btn.setOnTouchListener(this); } @Override public void onClick(View view) { Log.d(TAG, "onClick: 处理A事件"); } @Override public boolean onLongClick(View view) { //开启子线程,处理B事件 myThread = new MyThread(); myThread.start(); return false; } @Override public boolean onTouch(View view, MotionEvent motionEvent) { if (motionEvent.getAction() == MotionEvent.ACTION_UP &&myThread!=null){ Log.d(TAG, "onTouch: B事件手动停止"); myThread.flag = false; return true; } return false; }}MyThread,处理B事件
public class MyThread extends Thread { private static final String TAG= MyThread.class.getSimpleName(); public volatile boolean flag = true; private int count = 0; @Override public void run() { super.run(); while(flag && count <100){ try { Thread.sleep(500l); } catch (InterruptedException e) { e.printStackTrace(); } Log.d(TAG, "run: 事件B"+count++); if(count == 99){ Log.d(TAG, "run: 事件B执行完自动停止"); } } }}
如果你们有其他的解决方法,也可以贴出来,互相学习一下
0 0
- 遇到的问题以及解决方法(长按操作)
- 学习中遇到的问题以及解决方法
- 记录遇到的问题以及解决方法
- 总结今天遇到的问题以及解决方法
- 项目开发遇到的问题以及解决方法
- ebuy遇到的问题以及解决方法
- 学习Mysql遇到的问题以及解决方法
- UITextField遇到的一些问题以及解决方法
- Debian 8.5 遇到的问题以及解决方法
- .Net遇到的问题以及解决方法
- .Net遇到的问题以及解决方法
- (QT)QT遇到的问题以及解决方法
- 安装Paramiko遇到的问题以及解决方法
- Https 调用遇到的问题以及解决方法
- erlang的dialyzer使用中遇到的问题,以及解决方法
- CentOS6.4 安装oracle11g的遇到的问题以及解决方法
- Hbase的java API遇到的问题以及解决方法
- Java程序中遇到的乱码问题以及解决方法
- 【设计模式】依赖反转原则
- 隐藏DOM元素方法
- iOS 开发 网络编程详解之基本概念
- java基础巩固----路径问题
- 栈和队列(8)-- 最大值减去最小值小于或者等于num的子数组
- 遇到的问题以及解决方法(长按操作)
- 数据库连接中使用PreparedStatement预编译防止SQL注入
- HTML基础
- OpenGL(二十二) gluBuild2DMipmaps 加载Mip纹理贴图
- unity的三种物体移动方法
- 常用的类的概念
- WebPack在React项目架构中的应用实践
- Red Hat内核升级过程记录
- HDU 2093考试排名(结构体多关键字排序+字符串处理)