其中:dialog_no_net是你的自定义dialog布局,setBackgroundDrawable(ColorDrawable(0))是设置背景为透明。vCancel 、tvConnect 是两个控件。vCancel点击dialog消失,tvConnect是跳转到WIFI连接界面。
MainActivity.kt
val FLAG_HOMEKEY_DISPATCHED = -0x80000000//定义屏蔽参数 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED) } override fun onKeyDown(keyCode :Int, event:KeyEvent):Boolean{ return when(keyCode){ KeyEvent.KEYCODE_BACK,KeyEvent.KEYCODE_MANNER_MODE,KeyEvent.KEYCODE_HOME -> true else -> false } }这样做返回键屏蔽更安全。使用了屏蔽参数KeyEvent.KEYCODE_BACK,KeyEvent.KEYCODE_MANNER_MODE,KeyEvent.KEYCODE_HOME分别为返回键,方式模式键,Home键
从aActivity跳转bActivity
在aActivity中
bActivity.open( this, SPHelper.getSysGrade()//传入的参数 )在bActivity中
class MainActivity:Activity{ companion object { fun open(context: Context, @GradeTag grade: Int) { val intent = Intent(context, MainActivity::class.java) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) .putExtra(KEY_MAIN_GRADE, grade)//获取aActivity中传入的参数 context.startActivity(intent) } } ...... }这样的跳转经常在协同开发同一个应用的时候经常用到。双发各自编写自己的Activity,跳转不受传入参数的影响。
这里最终获取到了Activity.class的名字String。