42移动归属地的bug解决和双击事件

编程入门 行业动态 更新时间:2024-10-13 04:26:43

42移动归属地的bug解决和<a href=https://www.elefans.com/category/jswz/34/1739603.html style=双击事件"/>

42移动归属地的bug解决和双击事件

需求:

双击Toast的时候,将号码归属地显示到屏幕的中间。

双击事件:

 将两次点击的时间间隔小于0.5s的默认为双击事件


package com.example.doubleclick;import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Toast;public class MainActivity extends Activity {long firstClickTime;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View view) {if (firstClickTime > 0) {// 用户已经点击过了long secondClickTime = SystemClock.uptimeMillis();;long dtime = secondClickTime - firstClickTime;if (dtime < 500) {Toast.makeText(this, "双击事件发生", 1).show();} else {firstClickTime = 0;}return;}firstClickTime = SystemClock.uptimeMillis();// 系统开机的毫秒值new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(500);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}firstClickTime = 0;}}).start();}}

建子线程的作用是消除点击一次后,隔一小会,再去双击的bug.

三击事件的原理:

package com.example.doubleclick;import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Toast;public class CopyOfMainActivity1 extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}long[] mHits = new long[3];//三击事件public void click(View view){//src 拷贝的源数组//srcPos 从源数组的那个位置开始拷贝.//dst 目标数组//dstPos 从目标数组的那个位子开始写数据//length 拷贝的元素的个数System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);mHits[mHits.length-1] = SystemClock.uptimeMillis();if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {Toast.makeText(this, "恭喜你,3次点击了。", 0).show();}}}



实质:数组元素移位。

移植到手机管家项目中:

//点击事件view.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Log.i(TAG, "onClick");//src 拷贝的源数组//srcPos 从源数组的那个位置开始拷贝.//dst 目标数组//dstPos 从目标数组的那个位子开始写数据//length 拷贝的元素的个数System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);mHits[mHits.length-1] = SystemClock.uptimeMillis();if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {/*Toast.makeText(AddressService.this, "恭喜你,3次点击了。", 0).show();*///双击居中params.x = wm.getDefaultDisplay().getWidth() /2 - view.getWidth() /2;wm.updateViewLayout(view, params);// 记录Editor editor = sp.edit();editor.putInt("lastX", params.x);editormit();}}});






更多推荐

42移动归属地的bug解决和双击事件

本文发布于:2024-02-26 13:50:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1702731.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:双击   归属地   事件   bug

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!