Cordail saludo desde Colombia,
Antes que todo solo llevo solo 20 dias aprendiendo Java y tratando de incursionar con Android, para ello utilizo Android Studio.
tengo una consulta PHP que me arroja estos Arrays:
Código PHP:
{"alumno":[{"NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743"}]}{"produccion":[{"ID_PRO":"9143"},{"ID_PRO":"9142"},{"ID_PRO":"9141"},{"ID_PRO":"8808"},{"ID_PRO":"8761"},{"ID_PRO":"8613"}]}
Para conexion y busqueda de los datos realice esto:
Código:
public class Main extends AppCompatActivity {
private TextView miAlumno;
private Typeface miFont;
private Spinner miFactu;
private String miDato;
private String miFact;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btAlumno = (Button)findViewById(R.id.btFind);
miAlumno = (TextView)findViewById(R.id.miTexto);
miFont = Typeface.createFromAsset(getAssets(),"fonts/courbd.ttf");
miAlumno.setTypeface(miFont);
miFactu = (Spinner)findViewById(R.id.cbFact);
final EditText miCodigo = (EditText)findViewById(R.id.edCod);
btAlumno.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (miCodigo.getText().toString().length() < 6) {
Context context = getApplicationContext();
CharSequence text = "EL CODIGO DEBE DE SER DE SEIS DIGITOS";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
} else {
new JSONTask().execute("http://192.168.1.37/lfp/produc.php?ID=" + miCodigo.getText());
}
}
});
}
public class JSONTask extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try{
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null){
buffer.append(line);
}
String finalJson = buffer.toString();
JSONObject parentObject = new JSONObject(finalJson);
JSONArray parentArray = parentObject.getJSONArray("alumno");
JSONObject finalObject;
StringBuffer finalBufferData = new StringBuffer();
for (int i = 0; i < parentArray.length(); i++){
finalObject = parentArray.getJSONObject(i);
String estNombre = finalObject.getString("NOMBRE");
if (estNombre == null) {
miDato = "ALUMNO NO REGISTRADO";
} else {
NumberFormat numberfortmat = new DecimalFormat("#,###");
String estIdenti = finalObject.getString("IDENTI");
estIdenti = numberfortmat.format(Long.valueOf(estIdenti));
miDato = "ALUMNO:\n" + " " + estNombre + "\n " + estIdenti;
}
}
return miDato;
} catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally {
if(connection != null){
connection.disconnect();
}
try {
if (reader != null){
reader.close();
}
} catch (IOException e){
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String result){
super.onPostExecute(result);
miAlumno.setText(result);
}
}
La clase JSONTask me ubica bien lo correspondiente a "alumno" , pero no se como hacer para que me arroje los valores correspondientes a "produccion", sin tener que llamar de nuevo a la clase.
Aqui logre ubicar algo pero no se implementarlo bien.
Gracias de antemano.