Для двух Activity
Disclamer: Это моё первое приложение на Kotlin под андроид, могу не знать крутых фишек. Так же на экране с результатом не учитывается жизненный цикл приложения. Это просто пример. Kotlin не знаю.
src/main/res/layout/
activity_main.xml
XML |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<Button
android:id="@+id/buttonGenerate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="@string/button_generate"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout> |
|
src/main/java/com/example/random_food_generator/
MainActivity.kt
Kotlin |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| package com.example.random_food_generator
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
class MainActivity : AppCompatActivity() {
private lateinit var button: Button
private lateinit var dataGenerator: DataGenerator
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
dataGenerator = DataGenerator()
button = findViewById(R.id.buttonGenerate)
button.setOnClickListener {
buttonGenerateClick(it)
}
}
private fun createDataGenerationResultIntent(messageText: String): Intent {
val intent = Intent(this@MainActivity, DataGenerationResultActivity::class.java)
intent.putExtra(IntentConst.RESULT_KEY, messageText)
return intent
}
private fun buttonGenerateClick(view: View) {
val result: String = dataGenerator.generateData()
val intent: Intent = createDataGenerationResultIntent(result)
startActivity(intent)
}
} |
|
src/main/res/layout/
activity_data_generation_result.xml
XML |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DataGenerationResultActivity"
>
<TextView
android:id="@+id/textViewResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:textAlignment="center"
android:textSize="34sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout> |
|
src/main/java/com/example/random_food_generator/
DataGenerationResultActivity.kt
Kotlin |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| package com.example.random_food_generator
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
class DataGenerationResultActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_data_generation_result)
val messageText = intent.getStringExtra(IntentConst.RESULT_KEY)
val textView = findViewById<TextView>(R.id.textViewResult)
textView.text = messageText
}
} |
|
src/main/java/com/example/random_food_generator/
IntentConst.kt
Kotlin |
1
2
3
4
5
| package com.example.random_food_generator
object IntentConst {
const val RESULT_KEY = "RESULT"
} |
|
src/main/java/com/example/random_food_generator/
DataGenerator.kt
Kotlin |
1
2
3
4
5
6
7
8
9
10
11
| package com.example.random_food_generator
import kotlin.random.Random
class DataGenerator {
fun generateData(): String {
val array = arrayOf("Кот", "Пёс", "Лошадь")
val arrayIndex = Random.nextInt(array.size)
return array[arrayIndex]
}
} |
|
------------------
------------------
------------------
Для одной Activity
src/main/res/layout/
activity_main.xml
XML |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<Button
android:id="@+id/buttonGenerate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="@string/button_generate"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
<TextView
android:id="@+id/textViewResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="2dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonGenerate"
/>
</androidx.constraintlayout.widget.ConstraintLayout> |
|
Kotlin |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| package com.example.random_food_generator
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView
import kotlin.random.Random.Default.nextInt
class MainActivity : AppCompatActivity() {
private lateinit var button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button = findViewById(R.id.buttonGenerate)
button.setOnClickListener {
buttonGenerateClick(it)
}
}
private fun buttonGenerateClick(view: View) {
val textView: TextView = findViewById(R.id.textViewResult)
textView.text = generateData()
}
private fun generateData(): String {
val array = arrayOf("Кот", "Пёс", "Лошадь")
val arrayIndex = nextInt(array.size)
return array[arrayIndex]
}
} |
|