天天看点

Kotlin-使用简单的控件

一.简单控件

class MainActivity : AppCompatActivity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        tv_text.setOnClickListener(this)
    }

    override fun onClick(v: View?) {
        val textView = v as TextView;
        textView.setText("Hello world")
    }
}
           

主要这里通过as来强制转化

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/ll_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/tv_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

    <TextView
        android:id="@+id/tv_text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

</LinearLayout>
           

对LinearLayout的操作有

ll_layout.orientation = LinearLayout.VERTICAL
        ll_layout.gravity =  Gravity.CENTER;
        val lp = tv_text.layoutParams as LinearLayout.LayoutParams;
        lp.setMargins(0, dip(20), 0, dip(20))
           

二.启动Activity

startActivity(Intent([email protected],DetailActivity::class.java))
           

简写

startActivity<DetailActivity>("age" to  12,"name" to "Liming")
           
startActivity<DetailActivity>(Pair("age",12),Pair("name","Liming"))
           

对于序列化数据

@Parcelize
data class Message(val name:String,val age:String):Parcelable{
}