Je suis en train de mettre en œuvre smth comme menu contextuel, mais avec des icônesAndroid: Gestion des événements dans le menu
public class MenuItem {
private int type;
private String nameItem;
private int imageResource;
}
menu.xml
// ImageView ant TextView
public final class MenuItemProvider {
//create our menu items
}
public class MenuListAdapter extends ArrayAdapter<MenuItem> {
private Activity context;
private List<MenuItem> menuItems;
public MenuListAdapter(Activity context, List<MenuItem> menuItems) {
super(context, R.menu.menudlg, menuItems);
this.context = context;
this.menuItems = menuItems;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View row = inflater.inflate(R.menu.menudlg, parent, false);
TextView label = (TextView) row.findViewById(R.id.text_item);
label.setText(menuItems.get(position).getName());
ImageView icon = (ImageView) row.findViewById(R.id.icon_item);
icon.setImageResource(menuItems.get(position).getImageResource());
return row;
}
}
Question Je ne comprends pas comment gérer l'événement dans ce menu (événement de l'élément de menu rempli), l'un des moyens à envoyer builder.setAdapter dialogListener, mais je ne sais pas comment les créer
listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setAdapter(new AccountsTypesListAdapter(context, AccountTypesProvider.accountTypes), dialogListener);
builder.create().show();
}
oui je rouge cet article, je veux créer smth comme menu contextuel mais avec des images – Sergey
Ah, ok la partie "menu contextuel" manquait à votre question je pense. Une boîte de dialogue est comme une activité distincte, donc vous renvoyez des informations comme une activité, via le code de réponse ou des extras d'intention. –