Bonjour à tous, j'ai créé une listview qui fonctionne plutôt pas mal mais impossible d'adapter mon code pour une Gridview

Voici l'activite principale:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class sg_menu extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sg_menu);
 
        Context ctx = getApplicationContext();
		Resources res = ctx.getResources();
 
		String[] options = res.getStringArray(R.array.noms);
		TypedArray icons = res.obtainTypedArray(R.array.icones);
 
		setListAdapter(new ImageAndTextAdapter(ctx, R.layout.list_icons,
				options, icons));
    }
 
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        Intent intent = null;
        switch (position) {
        case 0:
            intent = new Intent(this, sg_1.class);
            break;
        case 1:
            intent = new Intent(this, sg_2.class);
            break;
        case 2:
            intent = new Intent(this, sg_3.class);
            break;
        }
        if (intent != null) {
            startActivity(intent);
        } else {
            // report unknown item selection
        }
    }
}
L'adapter:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class ImageAndTextAdapter extends ArrayAdapter<String> {
	private LayoutInflater mInflater;	
	private String[] mStrings;
	private TypedArray mIcons;	
	private int mViewResourceId;
 
	public ImageAndTextAdapter(Context ctx, int viewResourceId,
			String[] strings, TypedArray icons) {
		super(ctx, viewResourceId, strings);
 
		mInflater = (LayoutInflater)ctx.getSystemService(
				Context.LAYOUT_INFLATER_SERVICE);
 
		mStrings = strings;
		mIcons = icons;
 
		mViewResourceId = viewResourceId;
	}
 
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		convertView = mInflater.inflate(mViewResourceId, null);
 
		ImageView iv = (ImageView)convertView.findViewById(R.id.icon);
		iv.setImageDrawable(mIcons.getDrawable(position));
 
		TextView tv = (TextView)convertView.findViewById(R.id.text);
		tv.setText(mStrings[position]);
 
		return convertView;
	}	
}
Mes layout possèdent une image et un texte, dont les données sont stockées dans un array de "values/string.xml"

Donc ça fonctionne très bien pour une listview, mais rien à faire pour une GridView! J'ai essayé avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.grid_layout);
 
        GridView gridView = (GridView) findViewById(R.id.grid_view);
 
        // Instance of ImageAdapter Class
        gridView.setAdapter(new ImageAdapter(this));
 
        /**
         * On Click event for Single Gridview Item
         * */
        gridView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
 
                // Sending image id to FullScreenActivity
                Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
                // passing array index
                i.putExtra("id", position);
                startActivity(i);
            }
        });
mais impossible d'adapter le code pour garder le fonctionnement du click suivant l'item cliqué.

Je bloque vraiment, vous avez une idée s'il vous plait? Merci d'avance