Dados Decolagem Fragment

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

com.rodrigo.

mecnicodevoo

import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.lifecycle.ViewModelProvider

class DadosDecolagemFragment : Fragment() {

val altitudes = arrayOf("","0","100","200","300","400")


val temperaturas = arrayOf("","0","1","2","3","4","5","6","7","8","9","10")
val pesos =
arrayOf("","4400","4500","4600","4700","4800","4900","5000","5100","5200","5300"
,"5400","5500","5600")

lateinit var spinner_alt: Spinner


lateinit var spinner_temp: Spinner
lateinit var spinner_peso: Spinner
lateinit var btn_limpar_campos: Button

private lateinit var viewModel: DadosViewModel

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
// Obtenha a referência ao ViewModel da atividade
viewModel =
ViewModelProvider(requireActivity()).get(DadosViewModel::class.java)

// Acesse os dados do ViewModel compartilhado


val selectedAltitude = viewModel.selectedAltitude
val selectedTemperatura = viewModel.selectedTemperatura
val selectedPeso = viewModel.selectedPeso

// Exiba os dados no Log


Log.d("PSD", "Altitude: $selectedAltitude")
Log.d("PSD", "Temperatura: $selectedTemperatura")
Log.d("PSD", "Peso: $selectedPeso")

override fun onCreateView(


inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {

// Inflate o layout do fragment


val view = inflater.inflate(R.layout.activity_dados_decolagem_fragment,
container, false)

spinner_alt = view.findViewById(R.id.spinner_alt)
spinner_temp = view.findViewById(R.id.spinner_temp)
spinner_peso = view.findViewById(R.id.spinner_peso)
btn_limpar_campos = view.findViewById(R.id.button_limpar_campos)

Log.d("PSD", "Peso selecionado: ${viewModel.selectedPeso}")

// Inicialize o ViewModel
viewModel = ViewModelProvider(this).get(DadosViewModel::class.java)

// Configurar o adapter e vincular ao spinner


val adapteralt = ArrayAdapter(requireContext(),
R.layout.spinner_item_layout, altitudes)
adapteralt.setDropDownViewResource(R.layout.spinner_item_layout)
spinner_alt.adapter = adapteralt

val adaptertemp = ArrayAdapter(requireContext(),


R.layout.spinner_item_layout, temperaturas)
adaptertemp.setDropDownViewResource(R.layout.spinner_item_layout)
spinner_temp.adapter = adaptertemp

val adapterpeso = ArrayAdapter(requireContext(),


R.layout.spinner_item_layout, pesos)
adapterpeso.setDropDownViewResource(R.layout.spinner_item_layout)
spinner_peso.adapter = adapterpeso

Log.d("PSD", "Peso selecionado: ${viewModel.selectedPeso}")

// Restaurar os valores do ViewModel, se disponíveis

spinner_alt.setSelection(adapteralt.getPosition(viewModel.selectedAltitude))

spinner_temp.setSelection(adaptertemp.getPosition(viewModel.selectedTemperatura)
)

spinner_peso.setSelection(adapterpeso.getPosition(viewModel.selectedPeso))

Log.d("PSD", "Peso selecionado: ${viewModel.selectedPeso}")

// Adicione um listener para o Spinner de altitude


spinner_alt.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View?,
position: Int, id: Long) {
val selectedAltitude = altitudes[position]
if (selectedAltitude != "") {
viewModel.selectedAltitude= selectedAltitude
Toast.makeText(
requireContext(),
"Altitude selecionada: $selectedAltitude",
Toast.LENGTH_SHORT
).show()
Log.d("PSD", "Altitude selecionada:
${viewModel.selectedAltitude}")
}
}

override fun onNothingSelected(parent: AdapterView<*>?) {


// Não é necessário fazer nada aqui, mas você pode adicionar
lógica se desejar
}
}

// Adicione um listener para o Spinner de temperatura


spinner_temp.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View?,
position: Int, id: Long) {
val selectedTemperature = temperaturas[position]
if (selectedTemperature != "") {
viewModel.selectedTemperatura = selectedTemperature
Toast.makeText(
requireContext(),
"Temperatura selecionada: $selectedTemperature",
Toast.LENGTH_SHORT
).show()
Log.d("PSD", "Temperatura selecionada:
${viewModel.selectedTemperatura}")
}
}

override fun onNothingSelected(parent: AdapterView<*>?) {


// Não é necessário fazer nada aqui, mas você pode adicionar
lógica se desejar
}
}

// Adicione um listener para o Spinner de peso


spinner_peso.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View?,
position: Int, id: Long) {
val selectedPeso = pesos[position]
if (selectedPeso != "") {
viewModel.selectedPeso = selectedPeso
Toast.makeText(
requireContext(),
"Peso selecionado: $selectedPeso",
Toast.LENGTH_SHORT
).show()
Log.d("PSD", "Peso selecionado: ${viewModel.selectedPeso}")
}
}
override fun onNothingSelected(parent: AdapterView<*>?) {
// Não é necessário fazer nada aqui, mas você pode adicionar
lógica se desejar
}
}
// Salve os valores selecionados no ViewModel
viewModel.selectedAltitude = spinner_alt.selectedItem.toString()
viewModel.selectedTemperatura = spinner_temp.selectedItem.toString()
viewModel.selectedPeso = spinner_peso.selectedItem.toString()

// Exiba os dados no Log


Log.d("DEP", "Altitude: ${viewModel.selectedAltitude}")
Log.d("DEP", "Temperatura: ${viewModel.selectedTemperatura}")
Log.d("DEP", "Peso: ${viewModel.selectedPeso}")

Log.d("PSD", "Peso selecionado: ${viewModel.selectedPeso}")

btn_limpar_campos.setOnClickListener{

Log.d("DEP", "Altitude: ${viewModel.selectedAltitude}")


Log.d("DEP", "Temperatura: ${viewModel.selectedTemperatura}")
Log.d("DEP", "Peso: ${viewModel.selectedPeso}")

// Salve os valores selecionados no ViewModel


//viewModel.selectedAltitude = spinner_alt.selectedItem.toString()
//viewModel.selectedTemperatura =
spinner_temp.selectedItem.toString()
//viewModel.selectedPeso = spinner_peso.selectedItem.toString()

// Limpe os Spinners
spinner_alt.setSelection(0)
spinner_temp.setSelection(0)
spinner_peso.setSelection(0)
}

return view

You might also like