Advertisement
Guest User

Untitled

a guest
May 17th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.52 KB | None | 0 0
  1. package com.example.francisco.exampleapp
  2.  
  3. import android.content.Context
  4. import android.support.v7.app.AppCompatActivity
  5. import android.os.Bundle
  6. import android.view.LayoutInflater
  7. import android.view.View
  8. import android.view.ViewGroup
  9. import android.widget.AdapterView
  10. import android.widget.ArrayAdapter
  11. import android.widget.BaseAdapter
  12. import android.widget.TextView
  13. import kotlinx.android.synthetic.main.activity_selector.*
  14. import java.util.*
  15. import java.text.SimpleDateFormat;
  16.  
  17. class Selector : AppCompatActivity() {
  18.  
  19.  
  20.     val opciones = arrayOf("Opcion 1", "Opcion 2", "Opcion 3")
  21.     var opcionSelecionada = ""
  22.  
  23.     val ultimos_cambios = arrayListOf<registro>()
  24.  
  25.  
  26.     override fun onCreate(savedInstanceState: Bundle?) {
  27.         super.onCreate(savedInstanceState)
  28.         setContentView(R.layout.activity_selector)
  29.  
  30.         spinnerCambios.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, opciones)
  31.  
  32.  
  33.  
  34.         spinnerCambios.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
  35.             override fun onNothingSelected(parent: AdapterView<*>?) {
  36.                 textCambio.text = "No hay nada seleccionado"
  37.             }
  38.  
  39.             override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
  40.                 opcionSelecionada = opciones[position]
  41.             }
  42.         }
  43.         // Lógica de la listview
  44.  
  45.         listViewCambios.adapter = myAdapter(this, ultimos_cambios)
  46.  
  47.  
  48.  
  49.         // Lógica del botón
  50.         botonRegistro.setOnClickListener(View.OnClickListener {
  51.             if (!opcionSelecionada.equals("")){
  52.                 val current_date = Date()
  53.                 val dateFormat = SimpleDateFormat("HH:mm:ss yyyy/MM/dd")
  54.                 if (ultimos_cambios.size <5)
  55.                     ultimos_cambios.add(0, registro(opcionSelecionada, dateFormat.format(current_date) ))
  56.                 else{
  57.                     ultimos_cambios.removeAt(4)
  58.                     ultimos_cambios.add(0, registro(opcionSelecionada, dateFormat.format(current_date) ))
  59.                 }
  60.             }
  61.             //TODO: Ver si realmente es una buena manera hacerlo así :v
  62.             listViewCambios.invalidateViews()
  63.  
  64.         })
  65.  
  66.  
  67.     }
  68.  
  69.     private class myAdapter(context: Context, cambios: ArrayList<registro>): BaseAdapter(){
  70.         private val mContext: Context
  71.         private val mRegistros: ArrayList<registro>
  72.  
  73.         init {
  74.             mContext = context
  75.             mRegistros = cambios
  76.         }
  77.  
  78.         override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
  79.             val layoutInflader = LayoutInflater.from(mContext)
  80.             val row = layoutInflader.inflate(R.layout.row_selector, parent, false)
  81.  
  82.             val horaTextView = row.findViewById<TextView>(R.id.hora_textview)
  83.             val tipoTextView = row.findViewById<TextView>(R.id.tipo_textview)
  84.  
  85.             horaTextView.text = mRegistros[position].hora
  86.             tipoTextView.text = mRegistros[position].tipo
  87.  
  88.             return row
  89.         }
  90.  
  91.         override fun getItem(position: Int): Any {
  92.             return "TEST STRING"
  93.         }
  94.  
  95.         override fun getItemId(position: Int): Long {
  96.             return position.toLong()
  97.         }
  98.  
  99.         override fun getCount(): Int {
  100.             return mRegistros.size
  101.         }
  102.     }
  103.  
  104.     class registro(a: String, b: String ){
  105.         val tipo : String
  106.         val hora : String
  107.  
  108.         init{
  109.             tipo = a
  110.             hora = b
  111.         }
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement