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