protected void onPostExecute(String ris) { if (ErrorJson.Controllo(ris, PartecipazioniAttivita.this.getActivity(), risposta) == 0) { Log.d("Json", risposta.toString()); if (partecipazioni == null) partecipazioni = new ArrayList<Partecipazioni>(); try { JSONArray res = risposta.getJSONArray("risultati"); // recupera anche mittente da mostrare e salvare for (int i = 0; i < res.length(); i++) { JSONObject obj = res.getJSONObject(i); partecipazioni.add(Partecipazioni.createPartecipazioni(obj)); } aggiornalist(); } catch (JSONException e) { Log.e("ERROR", e.getMessage()); // e.printStackTrace(); } } }
private void aggiornalist() { if (partecipazioni != null) { // Questa è la lista che rappresenta la sorgente dei dati della listview // ogni elemento è una mappa(chiave->valore) ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); HashMap<String, Object> ServiceMap = new HashMap<String, Object>(); // creiamo una mappa di valori Partecipazioni pos = null; for (int i = partecipazioni.size() - 1; i >= 0; i--) { ServiceMap = new HashMap<String, Object>(); // creiamo una mappa di valori pos = partecipazioni.get(i); if (passati || pos.getTurno().isFuturo()) { ServiceMap.put("miei_attivita", pos.getAttivita_name()); ServiceMap.put("miei_turno", pos.getTurno().getDesc()); ServiceMap.put("miei_turno_start", pos.getTurno().getStart()); ServiceMap.put("miei_id", pos.getAttivita_id()); ServiceMap.put("miei_stato", " " + pos.getStato_value() + " "); data.add(ServiceMap); // aggiungiamo la mappa di valori alla sorgente dati } } String[] from = { "miei_attivita", "miei_turno", "miei_turno_start", "miei_id", "miei_stato" }; // dai valori contenuti in queste chiavi int[] to = { R.id.text_attivita, R.id.text_turno, R.id.text_start, R.id.text_id, R.id.text_stato }; // agli id delle view // costruzione dell adapter SimpleAdapter adapter = new SimpleAdapter( context, data, // sorgente dati R.layout.riga_miei_turni, // layout contenente gli id di "to" from, to) { @SuppressWarnings("deprecation") @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.riga_miei_turni, null); } View row = super.getView(position, convertView, parent); if (partecipazioni != null && partecipazioni.size() != 0) { TextView tv = (TextView) row.findViewById(R.id.text_stato); // caricare backgroud rettangolare GradientDrawable back = (GradientDrawable) getResources().getDrawable(R.drawable.rectanglesmussato); // settare il colore in base al valore assunto back.setColor(color(tv.getText().toString().trim())); // settare il backgroud tv.setBackgroundDrawable(back); // settare il testo come BOLD tv.setTypeface(null, Typeface.BOLD); // tv.setBackgroundColor(color(tv.getText().toString())); // oppure posso aggiungere uno sfondo quadrato alla parola concessa/in attesa/negata // con il colore rispettivo usato in gaia // settare backgroud che bisogna rendere piu chiaro perche ora troppo acceso // oppure sento dagli altri che preferiscono fare // row.setBackgroundColor(color(tv.getText().toString())); // Drawable test=row.getBackground(); // test.setAlpha(95); } return row; } }; // utilizzo dell'adapter listView.setAdapter(adapter); } else { ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>( context, R.layout.riga_miei_turni, R.id.text_attivita, new String[] {"Caricamento.."}); listView.setAdapter(arrayAdapter); } }