Avez-vous parcouru ce site pour toutes les réponses, pas vraiment de solution facile que j'ai trouvé pour cela. Je crée une application Android qui utilise une base de données sqlite pour rechercher une valeur hexadécimale par le nom de la couleur saisie. Je crée dynamiquement un TextView, définissant sa couleur de texte et de texte, puis l'ajoutant à ArrayList, puis ArrayList est en cours ajouté à ListView. Le texte apparaît dans ListView, mais sa propriété de couleur n'est pas définie. J'aimerais vraiment trouver un moyen d'obtenir la couleur du texte pour chaque élément listview. Voici mon code jusqu'ici:Définir la couleur du texte d'une vue de texte dans un élément listview? (Android)
Variables de classe:
private ListView lsvHexList;
private ArrayList<String> hexList;
private ArrayAdapter adp;
En onCreate():
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.color2hex);
lsvHexList = (ListView) findViewById(R.id.lsvHexList);
hexList = new ArrayList<String>();
Dans mon gestionnaire de bouton:
public void btnGetHexValueHandler(View view) {
// Open a connection to the database
db.openDatabase();
// Setup a string for the color name
String colorNameText = editTextColorName.getText().toString();
// Get all records
Cursor c = db.getAllColors();
c.moveToFirst(); // move to the first position of the results
// Cursor 'c' now contains all the hex values
while(c.isAfterLast() == false) {
// Check database if color name matches any records
if(c.getString(1).contains(colorNameText)) {
// Convert hex value to string
String hexValue = c.getString(0);
String colorName = c.getString(1);
// Create a new textview for the hex value
TextView tv = new TextView(this);
tv.setId((int) System.currentTimeMillis());
tv.setText(hexValue + " - " + colorName);
tv.setTextColor(Color.parseColor(hexValue));
hexList.add((String) tv.getText());
} // end if
// Move to the next result
c.moveToNext();
} // End while
adp = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, hexList);
lsvHexList.setAdapter(adp);
db.close(); // close the connection
}
Ça sonne bien. Comment cela ressemblerait-il au code? Kinda un programmeur débutant ici. = P –
Je n'ai pas d'exemple ListAdapter pour l'instant, mais voir le lien ci-dessous pour étendre BaseAdapter, l'idée est à peu près la même: https://github.com/BinyaminSharet/Icelandic-Memory-Game/blob/master /src/com/icmem/game/BoardGridAdapter.java – MByD
Pas vraiment utile. Quelqu'un d'autre? –