listview中的item两种方式弹出菜单。

第一种:

//为listview的item设置长按时弹出一个菜单lv_alarm_clock.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.setHeaderTitle("操作");     menu.add(0, 0, 0, "修改闹钟");  menu.add(0, 1, 0, "删除闹钟");}});
//菜单条目被选中的所要执行的操作@Overridepublic boolean onContextItemSelected(MenuItem item) {AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();final int position = menuInfo.position;switch (item.getItemId()) {case 0://修改闹钟Intent alarmSettingIntent = new Intent(AlarmClockListActivity.this, AlarmClockSettingActivity.class);alarmSettingIntent.putExtras(getBundle(position));startActivity(alarmSettingIntent);break;case 1://删除闹钟AlertDialog.Builder builder = new Builder(this);builder.setTitle("提示");builder.setMessage("要删除此闹钟吗?");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {int id = infos.get(position).getId();AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(AlarmClockListActivity.this, AlarmClockReceiver.class);intent.setAction("cn.edu.usts.cardhelper.alarmclock");intent.putExtras(getBundle(position));PendingIntent pi = PendingIntent.getBroadcast(AlarmClockListActivity.this, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);alarmManager.cancel(pi);Log.i(TAG, "------闹钟:"+id+"的广播取消成功!----");dao = new AlarmClockDao(AlarmClockListActivity.this);dao.delete(id);startThreadToReadSavedAlarmClockInfos();}});builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.show();break;}return super.onContextItemSelected(item);}

第二种:

lv.setOnItemLongClickListener(lv_OnItemLongClickListener);

private OnItemLongClickListener lv_OnItemLongClickListener = new OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view,final int position, long id) {final String[] items = new String[]{"重命名","删除录音"};Builder builder = new AlertDialog.Builder(AlarmClockChooseRingsRecordActivity.this).setTitle("文件操作").setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {if(items[which].equals("重命名")){Builder builder = new AlertDialog.Builder(AlarmClockChooseRingsRecordActivity.this).setTitle("重命名");final EditText et_reName = new EditText(AlarmClockChooseRingsRecordActivity.this);et_reName.setText(audioInfos.get(position).getAudioName());builder.setView(et_reName);builder.setPositiveButton("保存", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String name = et_reName.getText().toString().trim();String filePath = audioInfos.get(position).getAudioUri().toString();if("".equals(name)){ToastUtil.showShortToast(AlarmClockChooseRingsRecordActivity.this, "名称不能为空");return;}else{File oldFile = new File(filePath);Log.i(TAG, "---------------"+oldFile+"--------------");File newFile = new File(filePath.substring(0, filePath.lastIndexOf("/")), name+".amr");Log.i(TAG, "---------------"+newFile+"--------------");oldFile.renameTo(newFile);startThreadToReFreshRecordsList();}}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.show();}else{Uri uri = audioInfos.get(position).getAudioUri();new File(uri.toString()).delete();startThreadToReFreshRecordsList();}}});builder.show();return false;}};


更多相关文章

  1. android 源码大全
  2. Android(安卓)开发Tips 之 Bmob操作
  3. android 读取doc文档
  4. Android菜单的定义及ActionBar的实现
  5. android TranslateAnimation类作动态菜单
  6. Android(安卓)studio 将字符串写入本地的操作
  7. Android中实现输入图片地址浏览图片操作
  8. android 设置闹钟显示的状态栏上

随机推荐

  1. 轻松彻底清晰Android(安卓)Activity生命
  2. cocos2d-2.0-x-2.0.3多平台环境搭建(andro
  3. Android(安卓)Init进程分析
  4. Android中程序与Service交互的方式(三)-总
  5. 在Android上跑TensorFlow之接入TensorFlo
  6. Android 如何将定制的Launcher成为系统中
  7. android探索之UID u0_axxx的由来
  8. [转]Android xmlns 的作用及其自定义
  9. 浅析 Android 生命周期(一)
  10. Android(三)显示控件使用