Android - Listar datos de un spinner a cajas de texto en anndroid

 
Vista:
sin imagen de perfil
Val: 40
Ha aumentado su posición en 2 puestos en Android (en relación al último mes)
Gráfica de Android

Listar datos de un spinner a cajas de texto en anndroid

Publicado por Hector (35 intervenciones) el 05/10/2022 17:07:35
Hola amigos del foro, esperando que todos se encuentren muy bien de salud, para empezar estoy realizando mi primera aplicación en android-studio, ya he aprendido varias cosas, ahora lo que hice con anterioridad que me carque el campo clave en un spinner, ahora lo que quiero hacer es que al escoger un ítem del spinner que me arroje los distintos campos a las diferentes cajas de texto, este es el código que estoy utilizando actualmente:

package com.example.prueba1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;
import com.loopj.android.http.*;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONException;
import java.util.ArrayList;
import cz.msebera.android.httpclient.Header;

public class MainActivity extends AppCompatActivity {

private EditText txtid,txtfechadenuncia,txtfechasiniestro,txtsiniestro;
private Spinner spcodigo;
private AsyncHttpClient cliente;
RequestQueue requestQueue;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtid = (EditText) findViewById(R.id.txtid);
txtfechadenuncia = (EditText) findViewById(R.id.txtfechadenuncia);
txtfechasiniestro =(EditText) findViewById(R.id.txtfechasiniestro);
txtsiniestro = (EditText) findViewById(R.id.txtsiniestro);
spcodigo = (Spinner) findViewById(R.id.spcodigo);
cliente = new AsyncHttpClient();
llenarSpinner();
}


private void llenarSpinner(){
try {
String url = "http://192.168.1.87/oficina/buscar_casos.php";
cliente.get(url, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.d("WEB", "onSuccess: " + statusCode);
if (statusCode == 200){
cargarSpinner(new String(responseBody));
}
}

@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d("WEB", "onFailure: " + statusCode + "\nError: " + error.getMessage());
}
});
} catch (Exception e) {
e.printStackTrace();
}
}

private void cargarSpinner (String respuesta) {
ArrayList<Casos> lista = new ArrayList<Casos>();
try {
JSONArray jsonarreglo = new JSONArray (respuesta);
for (int i = 0; i < jsonarreglo.length(); i++) {
Casos c = new Casos();
c.setID(jsonarreglo.getJSONObject(i).getString("ID"));
c.setDenuncia(jsonarreglo.getJSONObject(i).getString("Fecha_Denuncia"));
c.setSiniestro(jsonarreglo.getJSONObject(i).getString("Fecha_Siniestro"));
c.setNumero(jsonarreglo.getJSONObject(i).getInt("N_Siniestro"));
lista.add(c);
}
ArrayAdapter<Casos> a = new ArrayAdapter<Casos>(this, android.R.layout.simple_dropdown_item_1line, lista);
spcodigo.setAdapter(a);
Thread.sleep(3000);

spcodigo.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Casos c = lista.get(i);
String url = "http://192.168.1.87/oficina/buscar_casos.php?ID="+c.getID();
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
if (response.length() == 1) {
try {
JSONObject jsonObject = new JSONObject(response.get(0).toString());
txtid.setText(jsonObject.getString("ID"));
txtfechadenuncia.setText(jsonObject.getString("Fecha_Denuncia"));
txtfechasiniestro.setText(jsonObject.getString("Fecha_Siniestro"));
txtsiniestro.setText(jsonObject.getInt("N_Siniestro"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "Este código no ha sido ingresado aun", Toast.LENGTH_SHORT).show();
}
});
requestQueue = Volley.newRequestQueue(MainActivity.this);
requestQueue.add(jsonArrayRequest);
}
});

} catch (Exception e) {
e.printStackTrace();
}
}
}
después en la línea Thread es donde el problema que no me muestra los datos en las cajas de texto, no sé si eta bien el código ya que estoy trabajando con json a través de php como aprendí a través de internet, favor de ayudarme y desde ya muchas gracias.

Amigos estuve haciendo unas pruebas y me arroja este error:

com.android.volley.NoConnectionError: java.io.IOException: Cleartext HTTP traffic to 192.168.1.85 not permitted
y el otro es, que piensdo que es lo mismo:

Caused by: java.io.IOException: Cleartext HTTP traffic to 192.168.1.85 not permitted
investigando y leyendo se debe a los permisos, por lo cual mencionan que hay que agregar la siguiente línea:

android:usesCleartextTraffic="true"
lo hice y no me soluciona el problema, a que se deberá?, disculpen las molestias y desde ya muchas gracias. Hoy realice una última prueba y lo hice correr, me mostro la aplicación realizando el cambio del clearttraffic y a los segundos se cae, es decir me bota y deja de seguir funcionando y busco el error en el logcat y no menciona el posible error, favor de ayudarme para así poder avanzar y seguir aprendiendo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder