欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-06-05 08:36:38
例子:首页guiding页面点击按钮跳转到主页面package com.example.naizu.mavecimport android.app.activity import android.co...

例子:首页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 实现按钮点击跳转监听事件方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。