MainActivity.kt
package com.zxb.www.myapp.Activity import android.content.Context import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import com.zxb.www.myapp.UI.MainLayoutActyUI import org.jetbrains.anko.setContentView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) MainLayoutActyUI().setContentView(this) } override fun startActivity(intent: Intent?) { super.startActivity(intent) } /*fun activityTiaozhuan(ctx: Context, clazz:Class<Any>){ var intent = Intent() intent.setClass(ctx,clazz) startActivity(intent) }*/ }MainLayoutactyUI.kt
package com.zxb.www.myapp.UI import android.app.Activity import android.content.Intent import android.graphics.Color import android.view.Gravity import android.widget.EditText import android.widget.LinearLayout.HORIZONTAL import android.widget.TextView import com.zxb.www.myapp.Activity.MainActivity import com.zxb.www.myapp.Activity.RegisterActivity import com.zxb.www.myapp.R import org.jetbrains.anko.* class MainLayoutActyUI : AnkoComponent<MainActivity> { //val ET_ID = 0x1001 lateinit var et_account: EditText lateinit var et_password: EditText lateinit var register: TextView override fun createView(ui: AnkoContext<MainActivity>) = with(ui) { verticalLayout { backgroundColor = context.resources.getColor(android.R.color.white) gravity = Gravity.CENTER_HORIZONTAL imageView(R.mipmap.ic_login).lparams { width = dip(100) height = dip(100) topMargin = dip(64) } linearLayout { orientation = HORIZONTAL gravity = Gravity.CENTER_VERTICAL textView("还没有帐号?") { textColor = Color.parseColor("#8a8a8a") textSize = 16f leftPadding = dip(5) } textView("去注册") { textColor = Color.parseColor("#1783e3") gravity = Gravity.RIGHT textSize = 16f onClick {最近总kotlin开发遇到一个问题,就是在kotlin的UI dsl里面的onClick方法里建Intent对象,用startActivity()跳转,老是提示有错误,具体错误见图片,哪位对kotlin 熟悉,请帮忙看看是何原因,感谢var intent = Intent(this@MainActivity,RegisterActivity::class.java) //intent.setClass(this@MainActivity,RegisterActivity::class.java) startActivity(intent) //startActivity<MainActivity>(this@MainActivity,RegisterActivity::class.java) //startActivity<MainActivity>(this@MainActivity,RegisterActivity.javaClass)} }.lparams(width = matchParent) }.lparams(width = dip(300)) { topMargin = dip(45) } linearLayout { gravity = Gravity.CENTER_VERTICAL orientation = HORIZONTAL backgroundResource = R.drawable.ic_tiaoxingkuang imageView { image = resources.getDrawable(R.drawable.ic_account) }.lparams{//布局参数 width = dip(40) height = dip(40) leftMargin = dip(12) rightMargin = dip(15) } et_account = editText { hint = "登录账户" hintTextColor = Color.parseColor("#666666") textSize = 16f //background = null }.lparams{ width = dip(255) height = dip(40) } }.lparams(width = dip(300), height = dip(40)){ topMargin = dip(20) } linearLayout { orientation = HORIZONTAL backgroundResource = R.drawable.ic_tiaoxingkuang gravity = Gravity.CENTER_VERTICAL imageView { image = resources.getDrawable(R.drawable.ic_password) }.lparams{ width = dip(40) height = dip(40) leftMargin = dip(12) rightMargin = dip(15) } et_password = editText { hint = "登录密码" hintTextColor = Color.parseColor("#666666") textSize = 16f //background = null }.lparams{ width = dip(255) height = dip(40) } }.lparams(width = dip(300), height = dip(40)){ topMargin = dip(10) } button("登录") { gravity = Gravity.CENTER backgroundColor = Color.parseColor("#1296db") textColor = Color.parseColor("#ffffff") onClick { if (et_account.text.toString().isNotEmpty() && et_password.text.toString().isNotEmpty()){ var intent = Intent(this@MainActivity,RegisterActivity::class.java) //intent.setClass(this@MainActivity,RegisterActivity::class.java) startActivity(intent) //startActivity<MainActivity>(this@MainActivity,RegisterActivity::class.java) //startActivity<MainActivity>(this@MainActivity,RegisterActivity.javaClass) }else { toast("请输入账户或者密码") } } }.lparams(width = dip(300), height = dip(44)) { topMargin = dip(18) } linearLayout { orientation = HORIZONTAL gravity = Gravity.CENTER_VERTICAL checkBox("记住密码") { textColor = Color.parseColor("#666666") textSize = 16f leftPadding = dip(5) } textView("隐私协议") { textColor = Color.parseColor("#1783e3") gravity = Gravity.RIGHT textSize = 16f }.lparams(width = matchParent) }.lparams(width = dip(300)) { topMargin = dip(18) } textView("Copyright © EagleAndroid") { textSize = 14f gravity = Gravity.CENTER or Gravity.BOTTOM }.lparams { bottomMargin = dip(35) weight = 1f } } }}