Colore sfondo cella GridView a seconda di valore variabile

di il
0 risposte

Colore sfondo cella GridView a seconda di valore variabile

Buongiorno a tutti,
sto sviluppando un app per una TV android che deve mostrare in azienda lo stato degli operatori (che sono 4 o 5). Questi dati vengono presi da un database SQL Server tramite l'esecuzione di una query che viene poi ribaltata dentro ad un ResultSet e poi con un Simple Adapter viene mostrata sulla GridView (una sorta di reticolato 3 colonne x 2 righe).
E fin qui nessun problema, quando eseguo l'app, tutto viene mostrato correttamente.

Avrei però bisogno di gestire il colore di sfondo delle celle della grid view a seconda dei dati mostrati (o contenuti nelle variabili che vengono appunto mostrate nella cella della GridView.
Il colore di sfondo deve essere rosso se il valore di getString("statopresenza") è = "1" mentre deve essere giallo se il valore è = "0"
Poi dovrò fare anche un altro colore (verde) in caso si verifichi un altra condizione, ma poi quello devo ancora scriverlo. Mi manca però questo passaggio.

Attualmente il codice è questo:

public class MainActivity extends Activity {
    Connection con;
    String str;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        GridView gridView=(GridView)findViewById(R.id.gridview1);
        SimpleAdapter adapter;
        ConnectionClass connectionClass = new ConnectionClass();
        con = connectionClass.CONN();

        List<Map<String,String>> data = new ArrayList<Map<String,String>>();

        try {
            if (connectionClass !=null){
                int count = 0;
                String sqlWorkerState1 = "SELECT * FROM [ICM_MES].[dbo].[_Vista_stato_presenza_operatori]";
                Statement statement = con.createStatement();
                ResultSet resultSet = statement.executeQuery(sqlWorkerState1);
                int size = resultSet.getFetchSize();

                while (resultSet.next()){
                    HashMap<String,String> tab = new HashMap<String,String>();
                    tab.put("idoperatore", "ID operatore: "+resultSet.getString("idoperatore"));
                    tab.put("data", resultSet.getString("data"));
                    if (resultSet.getString("statopresenza").equals("0")){
                        tab.put("statopresenza", "Presente");
                    } else {
                        tab.put("statopresenza", "Non presente");
                    }
                    tab.put("nomecognome", resultSet.getString("nomecognome"));
                    data.add(tab);
                    count++;
                }
                Toast.makeText(this, String.valueOf(count), Toast.LENGTH_LONG).show();

                String[] from = {"idoperatore","statopresenza","nomecognome"};
                int[] to = {R.id.idoperatore,R.id.statopresenza,R.id.nomecognome};
                adapter = new SimpleAdapter(MainActivity.this, data, R.layout.gridviewlayout, from, to);
                gridView.setAdapter(adapter);

            }

        } catch (Exception e) {
            Log.e("Error: ",e.getMessage());

        }
    }

Qualche idea?

Grazie

Devi accedere o registrarti per scrivere nel forum
0 risposte