LisView设置 上下文菜单

来源:互联网 发布:伊尔汗国 知乎 编辑:程序博客网 时间:2024/05/20 20:46


public void onCreateContextMenu(ContextMenu menu,        View v,        ContextMenuInfo menuInfo) {    super.onCreateContextMenu(menu, v, menuInfo);    menu.setHeaderTitle(title);    menu.add(0, CMD_EDIT, 0, R.string.context_menu_edit);    menu.add(0, CMD_DELETE, 0, R.string.context_menu_delete);}@Overridepublic boolean onContextItemSelected(MenuItem item) {    switch (item.getItemId()) {    case CMD_EDIT:        any_function();//add your functionality here i.e. what you want to do        return true;    case CMD_DELETE:        **confirmDelete**();        return true;    default:        return super.onContextItemSelected(item);    }}




  1. public class ListViewActivity extends Activity {  
  2.       
  3.         @Override  
  4.         public void onCreate(Bundle savedInstanceState) {  
  5.             super.onCreate(savedInstanceState);  
  6.             setContentView(R.layout.main);  
  7.               
  8.             //绑定Layout里面的ListView  
  9.             ListView list = (ListView) findViewById(R.id.ListView01);  
  10.               
  11.             //生成动态数组,加入数据  
  12.             ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();  
  13.             for(int i=0;i<10;i++)  
  14.             {  
  15.                 HashMap<String, Object> map = new HashMap<String, Object>();  
  16.                 map.put("ItemImage", R.drawable.icon);//图像资源的ID  
  17.                 map.put("ItemTitle""Level "+i);  
  18.                 map.put("ItemText""Finished in 1 Min 54 Secs, 70 Moves! ");  
  19.                 listItem.add(map);  
  20.             }  
  21.              
  22.             //生成适配器的Item和动态数组对应的元素  
  23.             SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源   
  24.                      R.layout.listview,//ListItem的XML实现  
  25.                 //动态数组与ImageItem对应的子项          
  26.                 new String[] {"ItemImage","ItemTitle""ItemText"},   
  27.                 //ImageItem的XML文件里面的一个ImageView,两个TextView ID  
  28.                 new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}  
  29.             );  
  30.              
  31.             //添加并且显示  
  32.             list.setAdapter(listItemAdapter);  
  33.               
  34.             //添加选中点击事件  
  35.             list.setOnItemClickListener(new OnItemClickListener() {  
  36.   
  37.                 @Override  
  38.                 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
  39.                         long arg3) {  
  40.                     setTitle("点击第"+arg2+"个项目");  
  41.                 }  
  42.             });  
  43.               
  44.           //添加上下文事件点击事件  
  45.             list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {  
  46.                   
  47.                 @Override  
  48.                 public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
  49.                     menu.setHeaderTitle("长按菜单-ContextMenu");     
  50.                     menu.add(000"弹出长按菜单0");  
  51.                     menu.add(010"弹出长按菜单1");     
  52.                 }  
  53.             });   
  54.         }  
  55.           
  56.         //长按菜单响应函数  
  57.         @Override  
  58.         public boolean onContextItemSelected(MenuItem item) {  
  59.             setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目");   
  60.             return super.onContextItemSelected(item);  
  61.         }  
  62.     } 
lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(ShoppingListApp02Activity.this, "List item selected:" + items.get(position).getId(), Toast.LENGTH_LONG).show(); }});
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {      menu.add(0, v.getId(), 0, "Something");    menu.add(0, v.getId(), 0, "Something else");  }


http://topmanopensource.iteye.com/blog/1233214