Kotlin 实现按钮点击跳转监听事件方式
例子:首页Guiding页面点击按钮跳转到主页面
packagecom.example.naizu.mavec
importandroid.app.Activity
importandroid.content.Intent
importandroid.os.Bundle
importandroid.widget.Toast
importkotlinx.android.synthetic.main.activity_guiding.*
classGuiding:Activity(){
overridefunonCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_guiding)
button.setOnClickListener({startActivity(Intent(Guiding@this,MainActivity::class.java))})
}
}
这里要注意的是MainActivity使用的是JAVA可使用
CODE->CONVERTJAVAFILETOKOTLINFILE
补充知识:Kotlin解决快速点击页面跳转出现重复页面问题
解决思路:每次点击的时候,设置一个点击的反应间隔时间
效果图:自己复制代码运行,我自己测试的是正常的,原生的不做处理,快速点击,确实会出现两个界面的情况
1.页面跳转,新建一个FirstActivirty
记得在清单文件里面注册
2.这个需要跳转到的新界面
importandroid.support.v7.app.AppCompatActivity
importandroid.os.Bundle
classFirstActivity:AppCompatActivity(){
overridefunonCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_first)
}
}
3.主界面,有两个按钮,一个是普通的点击跳转,一个是修改后的跳转
importandroid.content.Intent
importandroid.support.v7.app.AppCompatActivity
importandroid.os.Bundle
importandroid.util.Log
importandroid.view.View
importkotlinx.android.synthetic.main.activity_main.*
importcom.example.admin.zkotlin.NoDoubleClickListener
classMainActivity:AppCompatActivity(){
overridefunonCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button1.setOnClickListener{
varintent=Intent(this@MainActivity,FirstActivity::class.java)
startActivity(intent)
}
button2.setOnClickListener(object:NoDoubleClickListener(){
overridefunonNoDoubleClick(v:View?){
Log.e("TAG","button2click")
varintent=Intent(this@MainActivity,FirstActivity::class.java)
startActivity(intent)
}
})
}
}
4.全局封装的优化点击事件,做了时间响应判断
packagecom.example.admin.zkotlin;
importandroid.os.SystemClock;
importandroid.view.View;
/**
*User:Gavin
*E-mail:GavinChangCN@163.com
*Desc:解决"帕金森"式连续点击
*Date:2016-12-01
*Time:17:26
*/
publicabstractclassNoDoubleClickListenerimplementsView.OnClickListener{
protectedstaticfinalStringTAG="NoDoubleClickListener";
privatestaticfinalintMIN_CLICK_DELAY_TIME=1000;
privatelonglastClickTime=0;
publicabstractvoidonNoDoubleClick(Viewv);
@Override
publicvoidonClick(Viewv){
longcurrentTime=SystemClock.uptimeMillis();
if(currentTime-lastClickTime>MIN_CLICK_DELAY_TIME){
lastClickTime=currentTime;
onNoDoubleClick(v);
}
}
}
以上这篇Kotlin实现按钮点击跳转监听事件方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。