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