2010-10-05 4 views
0

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(); 
    } 

Répondre

1

Je ne suis pas votre approac h ici. Avez-vous lu Creating Menus?

Tout ce que vous devez faire est de définir votre fichier XML, le gonfler en onCreateOptionsMenu et gérer la sélection du menu en onOptionsItemSelected.

Je ne suis pas sûr pourquoi vous avez un ArrayAdapter impliqués.

+0

oui je rouge cet article, je veux créer smth comme menu contextuel mais avec des images – Sergey

+0

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. –