Prosty projekt Android napisany w Kotlinie z użyciem ViewBinding. Dane wprowadzasz w pierwszym oknie, BMI liczy się w drugim, a historia pojawia się w trzecim.
MainActivity.ktMainActivity2.ktMainActivity3.ktactivity_main.xmlactivity_main2.xmlactivity_main3.xml
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
companion object {
val historia = mutableListOf()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.btnConfirm.setOnClickListener {
val waga = binding.edWaga.text.toString().toFloatOrNull()
val wzrost = binding.edWzrost.text.toString().toFloatOrNull()
val wiek = binding.edWiek.text.toString().toFloatOrNull()
val selectedId = binding.radioGroup.checkedRadioButtonId
if (selectedId != -1) {
val selectedRadio = findViewById(selectedId)
val gender = selectedRadio.text.toString()
// np. użyj gender dalej:
binding.tvWynik.text = "Płeć: $gender"
} else {
Toast.makeText(this, "Wybierz płeć", Toast.LENGTH_SHORT).show()
}
if (waga != null && wzrost != null && wiek != null) {
val intent = Intent(this, MainActivity2::class.java)
intent.putExtra("waga", waga)
intent.putExtra("wzrost", wzrost)
intent.putExtra("wiek", wiek)
startActivity(intent)
} else {
Toast.makeText(this, "Uzupełnij poprawnie wszystkie dane", Toast.LENGTH_SHORT).show()
}
}
binding.btnHistoria.setOnClickListener {
startActivity(Intent(this, MainActivity3::class.java))
}
}
}
class MainActivity2 : AppCompatActivity() {
private lateinit var binding: ActivityMain2Binding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMain2Binding.inflate(layoutInflater)
setContentView(binding.root)
val waga = intent.getFloatExtra("waga", 0f)
val wzrost = intent.getFloatExtra("wzrost", 0f)
val wiek = intent.getFloatExtra("wiek", 0f)
val bmi = waga / ((wzrost / 100) * (wzrost / 100))
val wynikText = "Waga: %.1f, Wzrost: %.1f, Wiek: %.0f, BMI: %.2f".format(waga, wzrost, wiek, bmi)
MainActivity.historia.add(0, wynikText)
binding.tvWynik.text = "Twoje BMI: %.2f".format(bmi)
binding.btnPowrot.setOnClickListener {
startActivity(Intent(this, MainActivity::class.java))
finish()
}
}
}
class MainActivity3 : AppCompatActivity() {
private lateinit var binding: ActivityMain3Binding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMain3Binding.inflate(layoutInflater)
setContentView(binding.root)
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, MainActivity.historia)
binding.listView.adapter = adapter
binding.btnWroc.setOnClickListener {
startActivity(Intent(this, MainActivity::class.java))
finish()
}
}
}
<LinearLayout ... orientation="vertical">
<EditText android:id="@+id/edWaga" android:hint="Waga (kg)" ... />
<EditText android:id="@+id/edWzrost" android:hint="Wzrost (cm)" ... />
<EditText android:id="@+id/edWiek" android:hint="Wiek (lata)" ... />
<Button android:id="@+id/btnConfirm" android:text="Oblicz BMI" ... />
<Button android:id="@+id/btnHistoria" android:text="Pokaż historię" ... />
</LinearLayout>
<LinearLayout ... orientation="vertical">
<TextView android:id="@+id/tvWynik" android:textSize="24sp" ... />
<Button android:id="@+id/btnPowrot" android:text="Wróć" ... />
</LinearLayout>
<LinearLayout ... orientation="vertical">
<ListView android:id="@+id/listView" android:layout_weight="1" ... />
<Button android:id="@+id/btnWroc" android:text="Wróć" ... />
</LinearLayout>