Retornar multiples valores valores de un array

  • Respuestas:0
Jose Roman Lopez J.
  • Posts del Foro: 1

2 oct. 2015 17:15:19 vía Web

Cordial saludo,

Es mi primera pregunta en este foro y espero que me comprendan solo tengo un mes incursionando en el mundo de Android (utilizo Android Studio) y sobre todo Java.

Tengo una consulta PHP (localhost/lfp/produc.php?ID=092406) la cual me da este resultado:

{"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"}]}

Me funciona perfectamente la parte "alumno":

User uploaded photo

La pregunta es como cargar la parte "produccion" dentro una misma clase (public class JSONTask extends AsyncTask), los registros de produccion seran cargados en un SPINNER (flecha roja de la imagen), encontre algo en este foro (stackoverflow.com/questions/8498997/android-return-multiple-values-from-a-method) pero por ser tan novato no se como implementarlo, adjunto el Main.java para que se pueda ver lo que he hecho hasta el momento.

De antemano desde Colombia gracias por su colaboracion.

Main.java

package com.windroid.lfp;

import android.content.Context;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.DecimalFormat;
import java.text.NumberFormat;

public class Main extends AppCompatActivity {

private TextView miAlumno;
private Typeface miFont;
private String miDato;

@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("XXXXXXXX/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);
    }
}

}

Contestar