Creación de actividad
Cualquier actividad en el proyecto debe anular el método onCreate ()
class FirstActivity: AppCompatActivity () { override fun onCreate (savedInstanceState: Bundle ? ) { super .onCreate (savedInstanceState) }
La implementación predeterminada puede llamar a la clase primaria onCreate ()
Todas las actividades deben estar registradas en AndroidMainfest.xml
<? xml version = "1.0" encoding = "utf-8" ?> < manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.myapplication" > < application android: allowBackup = "true" android: icon = "@ mipmap / ic_launcher" android: label = "@ string / app_name" android: roundIcon = "@ mipmap / ic_launcher_round" android: supportsRtl = "true" android: theme = "@ style / AppTheme " > <actividad > </ aplicación > </ manifiesto >
Regístrese en la etiqueta de la aplicación a través de </ activity> , donde .FirstActivity omite el nombre del paquete
Configurar la actividad principal
Añadir etiqueta <intent-filter>
<? xml version = "1.0" encoding = "utf-8" ?> < manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.myapplication" > < application android: allowBackup = "true" android: icon = "@ mipmap / ic_launcher" android: label = "@ string / app_name" android: roundIcon = "@ mipmap / ic_launcher_round" android: supportsRtl = "true" android: theme = "@ style / AppTheme " > < android de actividad : android: label: = "First Activity"> < intent-filter > < action android: name = "android.intent.action.MAIN" /> < category android: name = "android.intent.category.LAUNCHER" /> < / intent-filter > </ activity > </ application > </ manifest >
Puede usar el atributo de etiqueta para establecer el contenido de la barra de título
Usar tostadas en la actividad
class FirstActivity: AppCompatActivity () { override fun onCreate (savedInstanceState: Bundle ? ) { super .onCreate (savedInstanceState) setContentView (R.layout.first_layout) button1.setOnClickListener { Toast.makeText ( this , "you are feo" , Toast. ) .show () } } }
Este es el contexto, pasando en la Actividad actual. Toast.LENGTH_SHORT es la duración de visualización. Obtenga el objeto Toast y llame al método show () para mostrar
Usar menú en actividad
Cree una nueva carpeta de menú en el directorio res y cree un archivo de recursos de menú
<? xml version = "1.0" encoding = "utf-8" ?> < menu xmlns: android = "http://schemas.android.com/apk/res/android" > < item android: id = "@ + id / add_item " android: title =" Add " /> < item android: id =" @ + id / remove_item " android: title =" Remove " /> </ menu >
Use <item para agregar un elemento de menú, use el atributo title para especificar el nombre
Para usar el menú, anule el método onCreateOptionsMenu en Activity
anular la diversión onCreateOptionsMenu (menu: Menu? ): Boolean { menuInflater.inflate (R.menu.main, menu) return true ; }
Use el archivo de recursos R.menu.main para agregar al objeto de menú
Para que el menú responda a los eventos, anule onOptionsItemSelected
anular la diversión onOptionsItemSelected (item: MenuItem): Boolean { when (item.itemId) { R.id.add_item -> Toast.makeText ( this , "sb" , Toast.LENGTH_SHORT) .show () R.id.remove_item -> Toast.makeText ( this , "hah" , Toast.LENGTH_SHORT) .show () } return super .onOptionsItemSelected (item) }
Use finish () para destruir Activity
Carga de archivo de diseño
Cree el archivo de diseño de la Actividad en el directorio res / layout. Después de escribir el diseño, debe cargarlo en onCreate of the Activity
class FirstActivity: AppCompatActivity () { override fun onCreate (savedInstanceState: Bundle ? ) { super .onCreate (savedInstanceState) setContentView (R.layout.first_layout) }
setContentView (R.layout.first_layout) Cargue el archivo de diseño y
use la intención para cambiar la Actividad
1. Intención explícita
button1.setOnClickListener { Toast.makeText ( esto , "eres feo" , Toast.LENGTH_SHORT) .show () val intent = Intent ( this , SecondActivity :: class .java) startActivity (intent) }
2. Intención implícita
Especifique la acción y la categoría, deje que el sistema encuentre la actividad adecuada para comenzar
button1.setOnClickListener { val intent = Intent (Intent.ACTION_VIEW) intent.data = Uri.parse ("https://www.baidu.com" ) startActivity (intent) }
Pase datos a la siguiente actividad
Almacene temporalmente datos en intención a través de putExtra
button1.setOnClickListener { val data = "jajaja" val intent = Intención ( esto , SecondActivity :: class .java) intent.putExtra ( "data" , data) startActivity (intent) }
Recibir
class SecondActivity: AppCompatActivity () { override fun onCreate (savedInstanceState: Bundle ? ) { super .onCreate (savedInstanceState) setContentView (R.layout.activity_second) val data = intent.getStringExtra ("data" ) Toast.makeText ( this , "data es $ data " , Toast.LENGTH_SHORT) .show () } }
Devolver datos a la actividad anterior
Utilice startActivityForResult
button1.setOnClickListener { val intent = Intent ( this , SecondActivity :: class .java) startActivityForResult (intent, 1 ) }
button2.setOnClickListener { val intent = Intent () intent.putExtra ( "data_return", "haahahah" ) setResult (Activity.RESULT_OK, intent) finish () }
anular diversión enActivityResult (requestCode: Int, resultCode: Int, data: Intent? ) { super .onActivityResult (requestCode, resultCode, data) when (requestCode) { 1 -> if (resultCode == Activity.RESULT_OK) { val return_data = data ? .getStringExtra ("data_return" ) Toast.makeText ( esto , "$ return_data " , Toast.LENGTH_SHORT) .show () } } }