Como obtener Strings de JSONArray
Publicado por Luis (97 intervenciones) el 02/01/2018 12:33:17
Hola a todos y feliz año nuevo.
Haber si me pueden ayudar a sacar de un JSONArray los campos y mostrarlos en otra actividad cada campo en un edittext para poder editarlos.
Les explico, tras una consulta con volley a una base de datos muestro en un listview todos los campos de la tabla.
La tabla contiene id nombre apellidos
Pero tan solo muestro nombre y apellido.
La intención es al tocar un ítem del listview convertir cada campo del arraystring en String para poder llevarme esos strings a una nueva actividad y recibirlos allí y mostrar cada String en su correspondiente editText.
En este momento únicamente consigo llevarme a la otra actividad el el cual muestra en un único editText todos los campos.
Quizá lo este planteando mal y tenga que llevarme el objeto arraystring al la nueva actividad y desmontarlo allí.
Les agradecería de su ayuda para poder solucionar este problema que tengo.
A continuación les dejo el código de la actividad principal la cual hace la consulta a la base de datos y muestra el resultado en un listview.
Muchas gracias por su tiempo y gracias por detenerse a leer este post.
Felices fiestas.
Y esta es la forma que recojo los datos desde la otra actividad y los muestro en un editText solo recojo un string ya que no soy capaz de enviar los campos por separado es ese el problema que no se resolver
Haber si me pueden ayudar a sacar de un JSONArray los campos y mostrarlos en otra actividad cada campo en un edittext para poder editarlos.
Les explico, tras una consulta con volley a una base de datos muestro en un listview todos los campos de la tabla.
La tabla contiene id nombre apellidos
Pero tan solo muestro nombre y apellido.
1
lista.add(+pos++ + "º " +ja.getString(i+1)+" "+ja.getString(i+2));
La intención es al tocar un ítem del listview convertir cada campo del arraystring en String para poder llevarme esos strings a una nueva actividad y recibirlos allí y mostrar cada String en su correspondiente editText.
En este momento únicamente consigo llevarme a la otra actividad el
1
itemSeleccionado.toString
Quizá lo este planteando mal y tenga que llevarme el objeto arraystring al la nueva actividad y desmontarlo allí.
Les agradecería de su ayuda para poder solucionar este problema que tengo.
A continuación les dejo el código de la actividad principal la cual hace la consulta a la base de datos y muestra el resultado en un listview.
Muchas gracias por su tiempo y gracias por detenerse a leer este post.
Felices fiestas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
public class MainActivity extends AppCompatActivity {
private Context ctx;
ListView llistaResultado;
int position;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ctx = MainActivity.this;
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.mipmap.ic_launcher);
llistaResultado = (ListView)findViewById(R.id.lavclasificaciongeneral);
listaclasificacion();
}
private void listaclasificacion() {
String consulta = "http://miservidor.net/usuarios" + "/listado.php";
EnviarRecibirDatos(consulta);
}
public void EnviarRecibirDatos(String URL){
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
response = response.replace("][",",");
if (response.length()>0){
try {
JSONArray ja = new JSONArray(response);
Log.i("sizejson",""+ja.length());
CargarListView(ja);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error, revise su conexion de internet", Toast.LENGTH_SHORT).show();
}
});
queue.add(stringRequest);
}
public void CargarListView(JSONArray ja){
int pos = position+1;
ArrayList<String> lista = new ArrayList<>();
for(int i=0;i<ja.length();i+=3){
try {
lista.add(+pos++ + "º " +ja.getString(i+1)+" "+ja.getString(i+2));
} catch (JSONException e) {
e.printStackTrace();
}
}
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lista );
llistaResultado.setAdapter(adaptador);
llistaResultado.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// Obtiene el valor de la casilla elegida
String itemSeleccionado = adapterView.getItemAtPosition(i).toString();
Intent e = new Intent (MainActivity.this, Editar_registros.class);
e.putExtra("nombre", itemSeleccionado.toString());
startActivity(e);
}
});
}
}
Y esta es la forma que recojo los datos desde la otra actividad y los muestro en un editText solo recojo un string ya que no soy capaz de enviar los campos por separado es ese el problema que no se resolver
1
2
String nombre = getIntent().getStringExtra("nombre");
edittextnombre.setText(nombre);
Valora esta pregunta


0