Android 闹钟 开发过程记录(七)
2015-03-01 14:25
471 查看
listview中的item两种方式弹出菜单。
第一种:
第二种:
第一种:
//为listview的item设置长按时弹出一个菜单 lv_alarm_clock.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle("操作"); menu.add(0, 0, 0, "修改闹钟"); menu.add(0, 1, 0, "删除闹钟"); } });
//菜单条目被选中的所要执行的操作 @Override public 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() { @Override public 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() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.show(); break; } return super.onContextItemSelected(item); }
第二种:
lv.setOnItemLongClickListener(lv_OnItemLongClickListener);
private OnItemLongClickListener lv_OnItemLongClickListener = new OnItemLongClickListener() { @Override public 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() { @Override public 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() { @Override public 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() { @Override public 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; } };
相关文章推荐
- Android 闹钟 开发过程记录(二)
- Android 闹钟 开发过程记录(三)
- Android:Moring-早安闹钟开发过程记录(二)
- Android:Moring-早安闹钟开发过程记录(三)
- Android 闹钟 开发过程记录(六)
- Android 闹钟 开发过程记录(四)
- Android:Moring-早安闹钟开发过程记录(四)
- Android:Moring-早安闹钟开发过程记录(一)
- Android 闹钟 开发过程记录(五)
- Android 闹钟 开发过程记录(一)
- android 实用闹钟开发过程记(一)--创建数据库
- 基于Eclipse的Android JNI层测试应用开发过程记录
- 初学android开发的一些过程记录
- android 实用闹钟开发过程记(二)--sqlite数据库的操作
- Android 手机影音 开发过程记录(二)
- Android 手机影音 开发过程记录(三)
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录
- cocos2d-x-2.1使用Xcode整合ios与android开发代码 - 过程记录