I have the following problem I am trying to bring a list of items that I get from a json
, from a activity
through a controlador
q you request it to a class that has the json
. Inside the code that I am attaching what I am looking for is to pass to my MainActivity
the list of specialties through a method.
MainActivity
public class MainActivity extends Activity {
ArrayList<Especialidad> ep;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Especialidad_connect e = new Especialidad_connect();
e.execute("http://192.168.1.55:8080/especialidad/");
ep = new ArrayList<>();
final Consultas_Especialidad ce = new Consultas_Especialidad(MainActivity.this);
ep = ce.getAll();
}
}
Consultation_speciality
public class Consultas_Especialidad {
Context context;
ArrayList<Especialidad> espList, lista;
public Consultas_Especialidad(Context context) {
this.context = context;
}
public void setLista(ArrayList<Especialidad> e){
espList = new ArrayList<>();
espList = e;
}
public ArrayList<Especialidad> getAll(){
lista = new ArrayList<>();
lista = espList;
return lista;
}
}
Specialty_connect
public class Especialidad_connect extends AsyncTask<String, Void, String> {
public static Especialidad[] especialidad_arreglo;
public ArrayList<Especialidad> listaEspecialidades;
Especialidad especialidad;
@Override
public String doInBackground(String... urls) {
return GET(urls[0]);
}
// onPostExecute displays the results of the AsyncTask.
@Override
public void onPostExecute(String r) {
listaEspecialidades = new ArrayList<>();
especialidad = new Especialidad();
Gson gson = new Gson();
especialidad_arreglo = gson.fromJson(r, Especialidad[].class);
int t = especialidad_arreglo.length;
for (int i=0; i < t; i++){
especialidad.setId(especialidad_arreglo[i].getId());
especialidad.setNombre(especialidad_arreglo[i].getNombre());
listaEspecialidades.add(especialidad);
}
Consultas_Especialidad ce = new Consultas_Especialidad(null);
ce.setLista(listaEspecialidades);
}
public static String GET(String url){
InputStream inputStream = null;
String result = "";
try {
// create HttpClient
HttpClient httpclient = new DefaultHttpClient();
// make GET request to the given URL
HttpResponse httpResponse = httpclient.execute(new HttpGet(url));
// receive response as inputStream
inputStream = httpResponse.getEntity().getContent();
// convert inputstream to string
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work!";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
public static String convertInputStreamToString(InputStream inputStream) throws IOException{
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
String line = "";
String result = "";
while((line = bufferedReader.readLine()) != null)
result += line;
inputStream.close();
return result;
}
}