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.
|