2012-07-16 3 views
1

Dans mon applicatio j'ai 1 listview, remplissage des données de la base de données en utilisant arrayadapter.Listview peupler en android

Voici code suivant:

public void onClick(View v) { 
        // TODO Auto-generated method stub 

         Cursor c = db.gethouseholdTitle(); 
         startManagingCursor(c); 
//     if(cat.equals("Income")) 
//     { 
////       System.out.println("inside if="+select); 
////       Cursor cin = db.income(); 
         String[] fromdes = new String[] {db.KEY_DATE,db.KEY_DESC,db.KEY_INCOME,db.KEY_TOTAL}; 
         int[] todes = new int[] {R.id.text1 ,R.id.text3,R.id.text5,R.id.text7}; 
         SimpleCursorAdapter notes = 
            new SimpleCursorAdapter(this, R.layout.columnview, c, fromdes, todes); 
         // System.out.println("notes="+notes.getCount()); 
         // setListAdapter(notes);  
          lv.setAdapter(notes); 

       } 

Mais montrant erreur:

The constructor SimpleCursorAdapter(new View.OnClickListener(){}, int, Cursor, String[], int[]) is undefined 

ce que je fais wrong.Thanks en advance.I pense nous ne pouvons pas en mesure de remplir l'adaptateur du curseur dans une fonction de clic ??

+1

Dans le onClick le contexte est modifié. Donc, vous devez mettre votre YourActivityName avant de mettre "** this **". donner le contexte de YourActivity. –

Répondre

4

Modifier cette ligne:

SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.columnview, c, fromdes, todes); 

dans ce:

SimpleCursorAdapter notes = new SimpleCursorAdapter(MyActvity.this, R.layout.columnview, c, fromdes, todes); 

Ici MyActivity doit être le nom réel de votre activité.

En même temps, je vais attirer votre attention sur l'extrait suivant de SimpleCursorAdapter javadoc:

This constructor is deprecated. This option is discouraged, as it results in Cursor queries being performed on the application's UI thread and thus can cause poor responsiveness or even Application Not Responding errors. As an alternative, use LoaderManager with a CursorLoader.