J'essaye de créer un GridView dans android suivant l'exemple here, juste avec les boutons excepté des images. Voici le code que j'ai changé:Pourquoi le onClickListener ne fonctionne plus dans cet exemple?
public class ButtonAdapter extends BaseAdapter {
private Context mContext;
private String[] filesnames = {
"File 1",
"File 2",
"Roflcopters",
"File 1",
"File 2",
"Roflcopters",
"File 1",
"File 2",
"Roflcopters",
"File 1",
"File 2",
"Roflcopters"
};
public ButtonAdapter(Context c) {
mContext = c;
}
public int getCount() {
return filesnames.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
Button btn;
if (convertView == null) {
// if it's not recycled, initialize some attributes
btn = new Button(mContext);
btn.setLayoutParams(new GridView.LayoutParams(100, 85));
btn.setPadding(8, 8, 8, 8);
}
else {
btn = (Button) convertView;
}
btn.setText(filesnames[position]);
// filenames is an array of strings
btn.setTextColor(Color.WHITE);
btn.setBackgroundResource(R.drawable.sample_0);
btn.setId(position);
return btn;
}
}
et, bien sûr, je légèrement changé le principal code java comme je l'ai nommé cet adaptateur et l'activité différemment:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select_route);
GridView gridview = (GridView) findViewById(R.id.selectroute_view);
gridview.setAdapter(new ButtonAdapter(this));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(SelectRoute.this, "" + position,
Toast.LENGTH_SHORT).show();
}
});
}
Tout fonctionne bien jusqu'à présent , sauf qu'en cliquant sur l'un de ces boutons, je ne reçois pas de message toast. Je ne vois aucune erreur - alors qu'est-ce que je fais mal?
Je vais essayer, mais je ne comprends pas pourquoi il ne fonctionne pas comme l'exemple d'origine ... – Alex
Avec votre suggestion j'ai des problèmes avec la variable locale accédant etc. – Alex