2010-10-05 82 views
0

处理事件我想实现像水木清华上下文菜单,但与图标安卓:在菜单

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

}

问题我不知道如何在这个菜单处理事件(事件填写菜单项)的,的方式之一builder.setAdapter dialogListener送,但我不知道如何创建它们

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

回答

1

我不跟着你approac h在这里。你读过Creating Menus吗?

所有你应该做的就是定义你的菜单xml文件,在onCreateOptionsMenu中对它进行充气并处理onOptionsItemSelected中的菜单选项。

我不知道为什么你有一个ArrayAdapter参与。

+0

是的我冲这篇文章,我想创建像上下文菜单,但与图像水平 – Sergey 2010-10-05 20:29:01

+0

啊,好吧,“上下文菜单”的一部分从你的问题,我想。对话就像是一个单独的活动,所以您可以像活动一样通过响应代码或意向附加功能从中返回信息。 – 2010-10-05 21:34:03