Kotlin 实现按钮点击跳转监听事件方式

例子:首页Guiding页面点击按钮跳转到主页面

package com.example.naizu.mavec

import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_guiding.*

class Guiding : Activity() {

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.activity_guiding)

  button.setOnClickListener({ startActivity(Intent(Guiding@this,MainActivity::class.java ))})

}
}

这里要注意的是MainActivity使用的是JAVA 可使用

CODE->CONVERT JAVA FILE TO KOTLIN FILE

补充知识:Kotlin解决快速点击页面跳转出现重复页面问题

解决思路:每次点击的时候,设置一个点击的反应间隔时间

效果图:自己复制代码运行,我自己测试的是正常的,原生的不做处理,快速点击,确实会出现两个界面的情况

1.页面跳转,新建一个FirstActivirty

记得在清单文件里面注册

<activity android:name="com.example.admin.zkotlin.FirstActivity"/>

2.这个需要跳转到的新界面

import android.support.v7.app.AppCompatActivity
import android.os.Bundle

class FirstActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_first)
  }
}

3.主界面,有两个按钮,一个是普通的点击跳转,一个是修改后的跳转

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
import com.example.admin.zkotlin.NoDoubleClickListener

class MainActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    button1.setOnClickListener {
      var intent = Intent(this@MainActivity, FirstActivity::class.java)
      startActivity(intent)
    }

    button2.setOnClickListener(object : NoDoubleClickListener() {
      override fun onNoDoubleClick(v: View?) {
        Log.e("TAG", "button2 click")
        var intent = Intent(this@MainActivity, FirstActivity::class.java)
        startActivity(intent)
      }

    })

  }

}

4.全局封装的优化点击事件,做了时间响应判断

package com.example.admin.zkotlin;

import android.os.SystemClock;
import android.view.View;

/**
 * User: Gavin
 * E-mail: GavinChangCN@163.com
 * Desc: 解决"帕金森"式连续点击
 * Date: 2016-12-01
 * Time: 17:26
 */
public abstract class NoDoubleClickListener implements View.OnClickListener {
  protected static final String TAG = "NoDoubleClickListener";

  private static final int MIN_CLICK_DELAY_TIME = 1000;
  private long lastClickTime = 0;

  public abstract void onNoDoubleClick(View v);

  @Override
  public void onClick(View v) {
    long currentTime = SystemClock.uptimeMillis();
    if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) {
      lastClickTime = currentTime;
      onNoDoubleClick(v);
    }
  }
}

以上这篇Kotlin 实现按钮点击跳转监听事件方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Android Studio使用Kotlin时,修改代码后运行不生效的解决方法

    问题现象 前段时间升级 Android Studio 3.1.3+ 版本后,决定尝试使用 Kotlin 做 APP 开发看看.结果却发现,修改 String 资源后,"运行",修改的内容没有生效.一开始以为只是 String 资源是这样,于是试了下 kt 文件,结果发现"运行"也不能生效. 但是先 clean 了,再"运行",却可以正常编译出来.查了好久发现是 New Module 后,Run/Debug Configurations不完整所致.

  • Android中AndroidStudio&Kotlin安装到运行过程及常见问题汇总

    工具:Android Studio 语言:Kotlin 1.Android Studio的安装与配置 AndoridStudio官方网址:直接点击即可进入AS官网下载页面 1.1.android studio的下载与安装 下载好AS的文件后,直接打开androidstudio的exe文件,弹出安装欢迎对话框如下图所示 点击Next 勾选Android Virtual Devide(AVD)安卓虚拟设备,这样之后可以在电脑上生成一个虚拟的安卓机以方便我们运行编写好的程序.如果准备用真机进行测试的,

  • Kotlin 实现按钮点击跳转监听事件方式

    例子:首页Guiding页面点击按钮跳转到主页面 package com.example.naizu.mavec import android.app.Activity import android.content.Intent import android.os.Bundle import android.widget.Toast import kotlinx.android.synthetic.main.activity_guiding.* class Guiding : Activity(

  • 微信小程序按钮点击跳转页面详解

    微信小程序中,按钮也是<button></button>标签,它通过bindtap属性绑定点击事件: 然后在js里面注册这个回调函数: 回调函数里面通过 wx.navigateTo({ url: '/pages/index/talkPage', }) 跳转到talkPage界面. 注意,html界面要在app.json里面注册: 不注册的话会报错:navigateTo:fail url "pages/index/talkPage" is not in app.j

  • JavaScript关于某元素点击事件的监听和触发

    目录 一. 触发元素同步效果 方法一: 原生JavaScript的click()点击事件 方法二:JQuery事件 — trigger()方法 二. 触发元素监听效果 方法一: 原生JavaScript监听 方法二:JQuery监听 场景:在javascript中,如果引用了某个框架中的元素,元素已在原框架实现并内置了点击事件,此时我们希望自己新建的元素的点击事件也触发和前述元素一样的效果. 举例:假设现存在元素A,元素B 方法①:元素A的点击事件会触发元素B的点击事件方法②:直接监听元素B的点

  • Android开发-之监听button点击事件的多种方法

    在Android下,事件的发生是在监听器下进行,android系统可以响应按键事件和触摸屏事件,本文主要介绍了button点击事件的方法 一.实现button点击事件的方法 实现button点击事件的监听方法有很多种,这里总结了常用的四种方法: 1.匿名内部类 2.外部类(独立类) 3.实现OnClickListener接口 4.添加XML属性 每一种方法都有它的优点也有它的不足,那么接下来就来详细的讲解这四个实现方法 二.具体实现 1.匿名内部类: 在Android开发中我们会经常看到各种匿名

  • Android悬浮按钮点击返回顶部FloatingActionButton

    先看一下Android悬浮按钮点击回到顶部的效果: FloatingActionButton是Design Support库中提供的一个控件,这个控件可以轻松实现悬浮按钮的效果 首先,要在项目中使用这个悬浮按钮就要先把design这个包导入项目 gradle中加入依赖 compile 'com.android.support:design:25.0.0' 接下来就是在xml中使用: 我这里是放置一个listView模拟返回顶部 <?xml version="1.0" encodi

  • Pygame实现监听鼠标示例详解

    目录 初始化参数 鼠标移动 鼠标点击位置 输出鼠标位置及其对用的按钮 完整代码  pygame如何捕捉鼠标的活动 初始化参数 import pygame, sys from pygame.locals import * def print_text(font, x, y, text, color=(0, 0, 0)): """打印字体函数""" img_text = font.render(text, True, color) screen.bl

  • Android开发手册Chip监听及ChipGroup监听

    目录 Chip监听 ChipGroup监听 实例 效果展示 Chip监听 选中状态的监听:setOnCheckedChangeListener,该监听只有设置了checkable 属性为true或者使用了[filter/entry/choice]这三个style主题的时候才生效. 点击事件的监听:setOnClickListener 关闭按钮被点击的监听:setOnCloseIconClickListener Java myChip.setOnCloseIconClickListener(Vie

  • vue监听浏览器原生返回按钮,进行路由转跳操作

    今天测试给我报了个bug说点击浏览器返回页数据显示的不对,我查了半天原因:需要监听浏览器的回退按钮,并阻止其默认事件. 具体操作方法如下: 1.挂载完成后,判断浏览器是否支持popstate mounted(){ if (window.history && window.history.pushState) { history.pushState(null, null, document.URL); window.addEventListener('popstate', this.canc

  • js监听鼠标点击和键盘点击事件并自动跳转页面

    js监听鼠标点击(onmousedown)和键盘点击(onkeydown)事件并自动跳转页面,在学习的朋友可以参考下 $(function(){ var i = 0; document.onmousedown=function(event){ if(i==1){ window.open('http://www.njxblog.com'); } //setTimeout(function (){window.open('http://www.jb51.net')},2000); //定时不太好使,

  • Layui 带多选框表格监听事件以及按钮自动点击写法实例

    不话不多说了,直接上代码吧: <div class="layui-btn-group demoTable" style="margin: 10px;">   <button class="layui-btn" id="hqsj" data-type="getCheckData">获取选中行数据</button>   <button class="layui

随机推荐