2013-08-06 1 views
0

J'ai implémenté le two-way-gridview library en ajoutant libs et two-way-gridview à mon projet Android.Android twoWayGridView onItemClickListenter ne fonctionne pas

Le XML:

<com.jess.ui.TwoWayGridView 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:background="#000000" 
android:id="@+id/listView1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
app:cacheColorHint="#E8E8E8" 
app:columnWidth="80dp" 
app:rowHeight="80dp" 
app:numColumns="3" 
app:numRows="auto_fit" 
app:verticalSpacing="16dp" 
app:horizontalSpacing="16dp" 
app:stretchMode="spacingWidthUniform" 
app:scrollDirectionPortrait="horizontal" 
app:scrollDirectionLandscape="horizontal" 
app:gravity="left" /> 

Le code Java:

//set up adapter 
CustomCursorAdapter dataAdapter = new CustomCursorAdapter(context, cursor); 
TwoWayGridView gridView = (TwoWayGridView) findViewById(R.id.listView1); 

//assign adapter to ListView 
gridView.setAdapter(dataAdapter); 

Cela se produit:

  1. Grille peut faire défiler horizontalement - youpi! Tous les articles sont TextViews avec le même élément (le premier article) - pas yay.
  2. Aucun élément de la grille n'est cliquable - le setOnItemClickListener n'est pas compatible - pas encore.

erreur Eclipse:

The method setOnItemClickListener(TwoWayAdapterView.OnItemClickListener) in the type TwoWayAdapterView is not applicable for the arguments (new AdapterView.OnItemClickListener(){})

sur ce morceau de code:

gridView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> listView, View view, int position, long id) { 
     //get the cursor, positioned to the corresponding row in the result set 
     Cursor cursor = (Cursor) listView.getItemAtPosition(position); 

     //get the media file from this row in the database 
     String fileName = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseHelper.FIELD_RESOURCE)); 

     String suffix = ".jpg"; 
     if(fileName.equalsIgnoreCase("null")){ 
      //Text item so do stuff for that 

      }else if(fileName.endsWith(suffix)){ 
        //Image item so do stuff for that 

       }else { 
        //Video item so do stuff for that 

       } 
      } 
     }); 

Dois-je écrire un onItemClickListener personnalisé pour les deux sens-gridview?

+0

J'ai trouvé cette réponse: http://stackoverflow.com/a/17707452/956975 Les commentaires sur cette solution? – marienke

Répondre

3

Vous devriez probablement changer:

gridView.setOnItemClickListener(new OnItemClickListener() {} 

par

gridView.setOnItemClickListener(new TwoWayAdapterView.OnItemClickListener() {}