Tema: [ CONSULTA ] Pasar variable
Ver Mensaje Individual
  #5  
Viejo 17/10/18, 23:12:09
Array

[xs_avatar]
Merche300 Merche300 no está en línea
Betatester oficial
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Tu operador: Pepephone
no me habre explicado bien, la varable dato, es parte de la url que al pulsar el boton 2 la variable en vez de j_01 pasa a ser j_02 y asi hasta 30 botones.



Código:
class FragJor : Fragment() {

    var dato = "j_01"

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        requestJsonObject()
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
        val view = inflater.inflate(R.layout.jornadas_todas, container, false)

        val miTexto: TextView = view.findViewById(R.id.tv_Grupo)
        miTexto.text = (getString(R.string.list_juveniles))

        val button1 = view.findViewById(R.id.tv_01) as Button
        button1.setOnClickListener {
dato = "j_01"
miTexto.text = (getString(R.string.Jornada_1))
            requestJsonObject()
        }
val button2 = view.findViewById(R.id.tv_02) as Button
        button2.setOnClickListener {
dato = "j_02"
miTexto.text = (getString(R.string.Jornada_2))
            requestJsonObject()
        }

   // 30 botones
return view
    }


    private fun requestJsonObject() {

        val queue = newRequestQueue(activity)

        //http://www.ffcv.es/ncompeticiones/server.php?action=getResultados&cmp=328&jor=1&tmp=2018/2019
val url = Directions.JORNADAS + Directions.CMP + "&jor=$dato&tmp=" + Directions.TMP
val stringRequest = StringRequest(Request.Method.GET, url, Response.Listener { response ->
val builder = GsonBuilder()
            val mGson = builder.create()

            val items: List<ModelJor>

            items = Arrays.asList(*mGson.fromJson(response, Array<ModelJor>::class.java))
            Log.d("Resultado", items.toString())

            recyclerView !!.layoutManager = GridLayoutManager(activity!!, 1)

            val adapter = AdapJor(activity !!, items)
            recyclerView !!.adapter = adapter


        }, Response.ErrorListener { error -> Log.d("Tag", "Error " + error.message) })
        queue.add(stringRequest)
    }
}
El adaptador, recibe el json de la url que obtengo al meter la variable dato en la url y envio unos items que me hacen falta para completar la url que he de parsear desde el activity Detalles como el .idLocal, idVisitante


Código:
class AdapJor(internal var context: Context, internal var listJornadas: List<ModelJor>) : RecyclerView.Adapter<AdapJor.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val itemView = LayoutInflater.from(parent.context).inflate(R.layout.jornadas_row, parent, false)
        return ViewHolder(itemView)
    }

    @RequiresApi(Build.VERSION_CODES.O)
    @SuppressLint("SetTextI18n")
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val jornada = listJornadas[position]

        val intent = Intent(context, Detalles::class.java)

        holder.itemView.setOnClickListener{
//Toast.makeText(context, "lo que quiero", Toast.LENGTH_SHORT).show()

            intent.putExtra("nomLocal", jornada.nomLocal)
            intent.putExtra("nomVisi", jornada.nomVisitante)
            intent.putExtra("idLocal", "" + jornada.idLocal)
            intent.putExtra("idClubLocal", "" + jornada.idClubLocal)
            intent.putExtra("idVisitante", "" + jornada.idVisitante)
            intent.putExtra("idClubVisitante", "" + jornada.idClubVisitante)
            intent.putExtra("codInfo", "" + jornada.codInfo)
            intent.putExtra("fecha", jornada.fecha + "  " + jornada.hora)
            intent.putExtra("esLocal", "http://ffcv.es/ncompeticiones/" + jornada.escudoLocal)
            intent.putExtra("esVisi", "http://ffcv.es/ncompeticiones/" + jornada.escudoVisitante)
            intent.putExtra("resultado", jornada.resulLocal + " - " + jornada.resulVisitante)
            context.startActivity(intent)
        }
val fecha = jornada.fecha


if (fecha == ""){
            holder.textFecha.text = ""

}else{

            val fecha = jornada.fecha + Directions.ANYO1
val parser = SimpleDateFormat("dd/MM/yyyy")
            val date = parser.parse(fecha) as Date
            val espanol = Locale("es", "ES")
            val formatter = SimpleDateFormat("EEEE dd 'de' MMMM 'del 'yyyy \n'  a las '", espanol)
            holder.textFecha.text = (formatter.format(date)) + jornada.hora
}


        //holder.textFecha.text = jornada.fecha + jornada.hora
holder.textEquipoLocal.text = jornada.nomLocal
holder.textResulLocal.text = jornada.resulLocal
holder.textEstado.text = jornada.estadoPartido
holder.textResulVisi.text = jornada.resulVisitante
holder.textEquipovisi.text = jornada.nomVisitante
//holder.textArbitro.text = jornada.arbitro

if(jornada.resulLocal!! < jornada.resulVisitante.toString()) {
            holder.textResulLocal.setTextColor(Color.RED)
            holder.textResulVisi.setTextColor(Color.GREEN)

        }else if(jornada.resulLocal!! > jornada.resulVisitante.toString()) {
            holder.textResulLocal.setTextColor(Color.GREEN)
            holder.textResulVisi.setTextColor(Color.RED)
        }

        Picasso.get()
                .load("http://ffcv.es/ncompeticiones/" + jornada.escudoLocal)
                .placeholder(R.mipmap.ic_launcher_round)
                .resize(50, 50)
                .centerCrop()
                .into(holder.imageEscLocal)

        Picasso.get()
                .load("http://ffcv.es/ncompeticiones/" + jornada.escudoVisitante)
                .placeholder(R.mipmap.ic_launcher_round)
                .resize(50, 50)
                .centerCrop()
                .into(holder.imageEscVisi)
    }

    override fun getItemCount(): Int = listJornadas.size

class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {

        var textFecha: TextView = itemView!!.findViewById(R.id.tv_Fecha)as TextView
        var textEstado: TextView = itemView!!.findViewById(R.id.tv_Estado) as TextView
        var textEquipoLocal: TextView = itemView!!.findViewById(R.id.tv_Amarillas) as TextView
        var textResulLocal: TextView = itemView!!.findViewById(R.id.tv_Result_Local)as TextView
        var imageEscLocal: CircleImageView = itemView!!.findViewById(R.id.tv_esc_local) as CircleImageView
        var textEquipovisi: TextView = itemView!!.findViewById(R.id.tv_Equipo_Visitante) as TextView
        var textResulVisi: TextView = itemView!!.findViewById(R.id.tv_Result_Visitante) as TextView
        var imageEscVisi: CircleImageView = itemView!!.findViewById(R.id.tv_esc_visi) as CircleImageView

    }
}
y el activity detalles que me fatla la variable dato del FragJornadas para completar la url


Código:
val URL_ACTA = "http://www.ffcv.es/ncompeticiones/server.php?action=getActa&tmp=$temporada&jor=$dato$competicion&idl=$idLocal&idv=$idVisitante&id=$codInfo"
y aqui dejo todo el activity Detalles por si lo quieres.



En el activity Detalles es donde quiero que llege la variable $dato del FragJornadas y no tengo ni idea de como hacerlo.


Código:
class Detalles : AppCompatActivity() {



    private var toolbar: Toolbar? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.cabecera_detalles)

        toolbar = findViewById(R.id.toolbarDetalles) as Toolbar
        setSupportActionBar(toolbar)

        supportActionBar!!.setDisplayHomeAsUpEnabled(true)


        val jor = intent.getStringExtra("jor")

        if (jor != null) {

            collapsing_toolbar.setTitle("Jornada " + jor)

            collapsing_toolbar.setExpandedTitleColor(Color.WHITE)
            collapsing_toolbar.setCollapsedTitleTextColor(Color.BLACK)
        }else{

            collapsing_toolbar.setTitle("si " + jor)


        }



        val tvfecha = intent.getStringExtra("fecha")
        val tv_fecha: TextView= findViewById<TextView>(R.id.tv_Fecha) as TextView
        tv_fecha.setText(tvfecha)

        val tvnomlocal = intent.getStringExtra("nomLocal")
        val tv_nomlocal: TextView= findViewById<TextView>(R.id.tv_Equipo_Local) as TextView
        tv_nomlocal.setText(tvnomlocal)

        val tvresultado = intent.getStringExtra("resultado")
        val tv_resultado: TextView= findViewById<TextView>(R.id.tv_Resultado) as TextView
        tv_resultado.setText(tvresultado)

        val nomvisi = intent.getStringExtra("nomVisi")
        val tv_nomvisi: TextView= findViewById<TextView>(R.id.tv_Equipo_Visitante) as TextView
        tv_nomvisi.setText(nomvisi)


        Picasso.get()
                .load(getIntent().getStringExtra("esLocal"))
                .resize(70, 90)
                //.noFade()
                //.transform(CircleTransform())
.into(tv_EscLocal)

        Picasso.get()
                .load(getIntent().getStringExtra("esVisi"))
                .resize(80, 80)
                //.noFade()
                //.transform(CircleTransform())
.into(tv_EscVisi)

        //recycler_TitLocal.visibility = View.GONE

tv_TitLocal.setOnClickListener{
if (recycler_TitLocal.visibility == View.GONE){

                recycler_TitLocal.visibility = View.INVISIBLE
}else{
                recycler_TitLocal.visibility = View.GONE
}
        }
parseDetalles()
    }

    companion object {

        private var currentPosition = 0
}

    private fun parseDetalles() {

        val idLocal = intent.getStringExtra("idLocal").toString()
        val idVisitante = intent.getStringExtra("idVisitante").toString()
        val codInfo = intent.getStringExtra("codInfo").toString()



        val temporada = "2018/2019" //Temporada
val competicion = "&cmp=328" //Competicion

val TMP = "2018/2019" //Temporada
val ID_ENCUENTROS = "&id=0201045201&cmp="
val CMP = "328" //Competicion

val jornada = intent.getStringExtra("jor")
        //val URL = "http://www.ffcv.es/ncompeticiones/server.php?action=getActa&tmp=2017/2018&jor=3&cmp=48&idl=0201073211&idv=0201128231&id=2127995"
val URL_ACTA = "http://www.ffcv.es/ncompeticiones/server.php?action=getActa&tmp=$temporada&jor=$dato$competicion&idl=$idLocal&idv=$idVisitante&id=$codInfo"

val URL_ARBITRO = "http://www.ffcv.es/ncompeticiones/server.php?action=getEncuentro&tmp=$temporada&cod=$codInfo&idl=$idLocal&idv=$idVisitante"
//val URL_ARBITRO = "http://www.ffcv.es/ncompeticiones/server.php?action=getEncuentro&tmp=2018/2019&cod=2554270&idl=0204013521&idv=0201045201"

val queue = Volley.newRequestQueue(this)

        val jsonObjReq = JsonObjectRequest(Request.Method.GET, URL_ACTA,
                null,
com.android.volley.Response.Listener<JSONObject> { response ->
setUpAcAdapter(response)
                },
com.android.volley.Response.ErrorListener {
                })

        MyApplication.instance?.addToRequestQueue(jsonObjReq, "json_request")

        queue.add(jsonObjReq)

        val jsonObjReq2 = JsonObjectRequest(Request.Method.GET, URL_ARBITRO,
                null,
com.android.volley.Response.Listener<JSONObject> { response ->
setUpArbAdapter(response)
                },
com.android.volley.Response.ErrorListener {
                })

        MyApplication.instance?.addToRequestQueue(jsonObjReq2, "json_request")

        queue.add(jsonObjReq2)
    }

    private fun setUpArbAdapter(response: JSONObject) {
        //initialize gson object
val gson = Gson()

        //get data from gson and assign to object
val actaPartido = gson.fromJson<ActaPartidoArray>(response.toString(), ActaPartidoArray::class.java)

        val Arbitro = actaPartido.infoGeneral?.arbitroPrincipal

val tv_arbitro: TextView= findViewById<TextView>(R.id.tv_Arbitro) as TextView

        tv_arbitro.setText(Arbitro)
    }



    private fun setUpAcAdapter(response: JSONObject) {
        //initialize gson object
val gson = Gson()

        //get data from gson and assign to object
val actaPartido = gson.fromJson<ActaPartidoArray>(response.toString(), ActaPartidoArray::class.java)
        val titularesLocal = actaPartido.tituLocal
val golesLocal = actaPartido.golesLocal
val tituVisi = actaPartido.tituVisi
val golesVisitante = actaPartido.golesVisitante
val Targetalocal = actaPartido.amonestacionesLocal
val Targetavisi = actaPartido.amonestacionesVisi
val Suplentelocal = actaPartido.suplentesLocal
val Suplentevisi = actaPartido.suplentesVisitante


recycler_TitLocal.layoutManager = GridLayoutManager(this, 1)
        recycler_TitVisi.layoutManager = GridLayoutManager(applicationContext, 1)
        recycler_GolLocal.layoutManager = GridLayoutManager(applicationContext, 1)
        recycler_GolVisitante.layoutManager = GridLayoutManager(applicationContext, 1)
        recycler_TargetaLocal.layoutManager = GridLayoutManager(applicationContext, 1)
        recycler_TargetaVisi.layoutManager = GridLayoutManager(applicationContext, 1)
        recycler_SuplentesLocal.layoutManager = GridLayoutManager(applicationContext, 1)
        recycler_SuplentesVisi.layoutManager = GridLayoutManager(applicationContext, 1)

        val adapter_TitLocal = ActaLocalAdapter(this, titularesLocal !!)
        recycler_TitLocal.adapter = adapter_TitLocal

        val adapter_TitVisi = ActaVisiAdapter(this, tituVisi !!)
        recycler_TitVisi.adapter = adapter_TitVisi

        val adapter_GolesLocal = ActaLocalAdapter(this, golesLocal !!)
        recycler_GolLocal.adapter = adapter_GolesLocal

        val adapter_GolesVisitante = ActaVisiAdapter(this, golesVisitante !!)
        recycler_GolVisitante.adapter = adapter_GolesVisitante

        val adapter_TarLocal = ActaLocalAdapter(this, Targetalocal !!)
        recycler_TargetaLocal.adapter = adapter_TarLocal

        val adapter_TarVisi = ActaVisiAdapter(this, Targetavisi !!)
        recycler_TargetaVisi.adapter = adapter_TarVisi

        val adapter_SuplenteLocal = ActaLocalAdapter(this, Suplentelocal !!)
        recycler_SuplentesLocal.adapter = adapter_SuplenteLocal

        val adapter_SuplenteVisi = ActaVisiAdapter(this, Suplentevisi !!)
        recycler_TargetaVisi.adapter = adapter_SuplenteVisi

    }


}
Espero haberme explicado bien ahora.

Última edición por Merche300 Día 17/10/18 a las 23:23:27.
Responder Con Cita