2013-02-23 4 views
1

Je sélectionne des données à partir d'une base de données. Données dans une colonne, vous devez convertir en kilogrammes, je dois multiplier par un facteur d'une colonne. Les données dans la colonne sets_weight dans la livre, et il est nécessaire d'afficher en kilogrammes, avec sans modifier à la base de données Comment le faire correctement. Des idées! Merci!Comment multiplier une colonne par le nombre dans ListView, Android

onSets = db.getSets(exesIdsColExes, toprog_dif);  
    listSets.setAdapter(new SimpleCursorAdapter(this, 
      R.layout.itemsets, onSets, 
      new String[] {"sets_ids", "sets_weight", "sets_ones"}, 
      new int[] {R.id.itemsets_ids, R.id.itemsets_weight, R.id.itemsets_ones}) { 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
       View row = super.getView(position, convertView, parent); 
       // Here we get the textview and set the color 
       Typeface fontTitleProg = Typeface.createFromAsset(getAssets(), "AGHELVETICA.TTF"); 
       TextView itemsets_ids = (TextView) row.findViewById(R.id.itemsets_ids); 
       itemsets_ids.setTypeface(fontTitleProg, 1); 
       itemsets_ids.setGravity(0x05); 

       TextView itemsets_weight = (TextView) row.findViewById(R.id.itemsets_weight); 
       itemsets_weight.setTypeface(fontTitleProg, 1); 
       itemsets_weight.setGravity(0x01); 

       TextView itemsets_ones = (TextView) row.findViewById(R.id.itemsets_ones); 
       itemsets_ones.setTypeface(fontTitleProg, 1); 
       itemsets_ones.setGravity(0x01); 

       return row; 
     } 
    }); 
+0

Vous voulez donc savoir comment convertir une valeur de colonne après conversion en kilogramme en la multipliant par une valeur dans une autre colonne? – lokoko

+0

Non, les données dans la colonne sets_weight dans la livre, et il est nécessaire d'afficher en kilogrammes, avec sans modifier à la base de données – Roman

Répondre

0

Je ne l'ai jamais fait de développement Android, mais the documentation of SimpleCursorAdapter dit:

En premier lieu, si un SimpleCursorAdapter.ViewBinder est disponible, setViewValue (android.view.View, android.database.Cursor, int) est invoqué. Si la valeur renvoyée est true, une liaison s'est produite. Si la valeur renvoyée est false et que l'affichage de la liaison est un TextView, setViewText (TextView, String) est appelé. Si la valeur renvoyée est false et que la vue à lier est ImageView, setViewImage (ImageView, String) est appelé.

Vous avez juste besoin de passer une instance personnalisée de SimpleCursorAdapter qui, si l'indice de la colonne est 1 (deuxième colonne), obtenir la valeur en livres du curseur, il faut multiplier pour transformer les livres en kg, définissez la résultat en tant que texte de la vue, et renvoie true. Pour les autres colonnes, renvoyez false.

+0

Merci pour le tip-off droit! Ça a marché! :) – Roman

Questions connexes