2017-06-17 15:24:08 qqKeG 阅读数 1707
  • Android事件处理重难点教学视频

    Android事件处理是Android开发中一个比较重要的知识点,该课程将通过实战讲解Android的用户事件处理,并且会讲解除了常规的基于监听的事件处理机制之外的事件处理机制--基于回调的事件处理机制,并且全程结合实战讲解。之前我们已经学习了如何实现Android的一些动画、组件等功能,但是如果用户要能方便地使用我们的Android APP,我们开发的时候就必须要考虑用户对这些控件可能进行的操作,比如单击、双击、滑动等,然后再对这些不同的用户事件进行不同的处理,从而满足用户对应用的操作需求。

    3733 人正在学习 去看看 CSDN讲师

cordova开发 移动端 应用遇到安卓 物理返回键 不知道如何控制

官方文档提供的返回键监听方法

document.addEventListener("backbutton", onBackKeyDown, false);

function onBackKeyDown(e) {}

使用中发现 监听 只能进行 一次监听,否则会多次执行, 并且 采用单页面应用SPA开发 后,出现了无法移出 返回键监听,导致无法单独 控制 物理返回键 返回到 指定的 页面和路由

解决的思路:在 index中 只进行 一次监听, 每个页面的返回按钮操作 都用js进行跳转控制,通过 trigger 触发的方式,执行返回

// 页面结构处理
<div class="page page-current">
       <header class="bar bar-nav">
           // 返回按钮 通过js进行控制跳转
           <a class="icon icon-and-left pull-left js-returnback" href="javascript:void (0)"></a>
           <h1 class="title">资源详情</h1>
       </header>
       <div class="content page-content">

       </div>
   </div>
// 返回js操作
    'click .js-returnback': 'returnBack'

   returnBack: function () {
        window.history.go(-1);
    },
document.addEventListener("backbutton", onBackKeyDown, false);

   function onBackKeyDown(e) {
       // 判断当前路由 页面 是否含有 弹出层等 modal 如果有 优先关闭弹出
       if ($('.modal-in').length > 0) {

           $.closeModal();
       } else {

           $('.js-returnback').trigger('click')
       }
   }
2016-06-03 14:44:25 ming2316780 阅读数 3274
  • Android事件处理重难点教学视频

    Android事件处理是Android开发中一个比较重要的知识点,该课程将通过实战讲解Android的用户事件处理,并且会讲解除了常规的基于监听的事件处理机制之外的事件处理机制--基于回调的事件处理机制,并且全程结合实战讲解。之前我们已经学习了如何实现Android的一些动画、组件等功能,但是如果用户要能方便地使用我们的Android APP,我们开发的时候就必须要考虑用户对这些控件可能进行的操作,比如单击、双击、滑动等,然后再对这些不同的用户事件进行不同的处理,从而满足用户对应用的操作需求。

    3733 人正在学习 去看看 CSDN讲师

转载请标明出处:
http://blog.csdn.net/ming2316780/article/details/51578796
本文出自:【Android_Jerry的博客】

具体实现方法代码如下:

可对返回按键监听点击次数,进行不同的操作,例如:

  • 双击关闭程序
  • 三击事件
  • 四击事件
  • 多击事件
public class MainActivity extends AppCompatActivity{

    private long afterTime = 0;
    private long[] mHits = new long[3]; // 数组长度代表点击次数

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onBackPressed() {
        doubleClickFinish();
//threeClickFinish();
    }

    // 多次点击返回键操作,高级实现方法
    private void threeClickFinish() {
        System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
        mHits[mHits.length - 1] = SystemClock.uptimeMillis();
        if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
            Toast.makeText(this, "三击返回按钮", Toast.LENGTH_SHORT).show();
        }
    }

    // 双击点击操作,低级实现方法
    private void doubleClickFinish() {
// 1. SystemClock.uptimeMillis(); 从开机到现在的毫秒数(手机睡眠的时间不包括在内);
// 2. System.currentTimeMillis(); 从1970年1月1日 UTC到现在的毫秒数;
        long curTime = SystemClock.uptimeMillis();
        long time = curTime - afterTime;
        if (time < 500) {
            finish();
        } else {
            afterTime = curTime;
            Toast.makeText(this, "双击关闭程序", Toast.LENGTH_SHORT).show();
        }
    }
}
2015-12-03 09:06:27 luzhenyuxfcy 阅读数 782
  • Android事件处理重难点教学视频

    Android事件处理是Android开发中一个比较重要的知识点,该课程将通过实战讲解Android的用户事件处理,并且会讲解除了常规的基于监听的事件处理机制之外的事件处理机制--基于回调的事件处理机制,并且全程结合实战讲解。之前我们已经学习了如何实现Android的一些动画、组件等功能,但是如果用户要能方便地使用我们的Android APP,我们开发的时候就必须要考虑用户对这些控件可能进行的操作,比如单击、双击、滑动等,然后再对这些不同的用户事件进行不同的处理,从而满足用户对应用的操作需求。

    3733 人正在学习 去看看 CSDN讲师

在开发过程中我们有时候会单独处理手机物理返回键,他有两种处理方式,择一而用:

package com.lzy.demo; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.app.Activity; 
/**
 * Demo描述:
 * 处理Back键按下事件
 * 
 * 注意事项:
 * 以下两种方法勿一起使用
 */ 
public class MainActivity extends Activity { 
   
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
    } 
    /**
     * 监听Back键按下事件,方法1:
     * 注意:
     * super.onBackPressed()会自动调用finish()方法,关闭
     * 当前Activity.
     * 若要屏蔽Back键盘,注释该行代码即可
     */ 
    @Override 
    public void onBackPressed() { 
        super.onBackPressed(); 
        System.out.println("按下了back键   onBackPressed()");        
    } 
       
       
   /**
    * 监听Back键按下事件,方法2:
    * 注意:
    * 返回值表示:是否能完全处理该事件
    * 在此处返回false,所以会继续传播该事件.
    * 在具体项目中此处的返回值视情况而定.
    */ 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
             System.out.println("按下了back键   onKeyDown()");  
             return false; 
        }else { 
            return super.onKeyDown(keyCode, event); 
        } 
           
    } 
       
    @Override 
    protected void onDestroy() { 
        super.onDestroy(); 
        System.out.println("执行 onDestroy()"); 
    }    
   
}

—— lovey hy.

【欢迎上码】

【微信公众号搜索 h2o2s2】


2015-06-10 13:35:32 fnuwfnh 阅读数 323
  • Android事件处理重难点教学视频

    Android事件处理是Android开发中一个比较重要的知识点,该课程将通过实战讲解Android的用户事件处理,并且会讲解除了常规的基于监听的事件处理机制之外的事件处理机制--基于回调的事件处理机制,并且全程结合实战讲解。之前我们已经学习了如何实现Android的一些动画、组件等功能,但是如果用户要能方便地使用我们的Android APP,我们开发的时候就必须要考虑用户对这些控件可能进行的操作,比如单击、双击、滑动等,然后再对这些不同的用户事件进行不同的处理,从而满足用户对应用的操作需求。

    3733 人正在学习 去看看 CSDN讲师
    @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
      switch(keyCode){
         case KeyEvent.KEYCODE_MENU:
          Log.d(TAG, "KeyEvent.KEYCODE_MENU");
         break;
         case KeyEvent.KEYCODE_HOME:
          Log.d(TAG, "KeyEvent.KEYCODE_HOME");
         break;
         case KeyEvent.KEYCODE_BACK:
          Log.d(TAG, "KeyEvent.KEYCODE_BACK");
         break;
         default:
             ;
      }
      return super.onKeyDown(keyCode, event);
     }
2014-11-08 14:49:14 u014676619 阅读数 672
  • Android事件处理重难点教学视频

    Android事件处理是Android开发中一个比较重要的知识点,该课程将通过实战讲解Android的用户事件处理,并且会讲解除了常规的基于监听的事件处理机制之外的事件处理机制--基于回调的事件处理机制,并且全程结合实战讲解。之前我们已经学习了如何实现Android的一些动画、组件等功能,但是如果用户要能方便地使用我们的Android APP,我们开发的时候就必须要考虑用户对这些控件可能进行的操作,比如单击、双击、滑动等,然后再对这些不同的用户事件进行不同的处理,从而满足用户对应用的操作需求。

    3733 人正在学习 去看看 CSDN讲师

监听返回键,需要重写onKeyDown()方法。

直接上代码:

@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
			// 设置点击事件
			Toast.makeText(MainActivity.this, "点击了返回键", Toast.LENGTH_SHORT)
					.show();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}


event.getRepeatCount() == 0 是用来屏蔽返回键原有的返回功能

返回键下退出程序

博文 来自: Tel_15701574585

android返回键监听

阅读数 333

没有更多推荐了,返回首页