通过上下文菜单的方式进行删除添加日记的操作
对应的list上先建出上下文菜单
registerForContextMenu(subjectlist);
//菜单的样式
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
//context_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_add_note"
android:title="添加日记">
</item>
<item
android:id="@+id/menu_edit_note"
android:title="修改日记">
</item>
<item
android:id="@+id/menu_delete_note"
android:title="删除日记">
</item>
</menu>
//选择条目的操作
@Override
public boolean onContextItemSelected(MenuItem item) {//放的 是switch case
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();//menuInfo强转
int position = (int) info.id;//位置
//以上两句似乎是固定操作,上边强制转换为info对象
Note note = (Note) subjectlist.getItemAtPosition(position);//位置对应的note对象
NoteEntry entry = note.getNoteEntry();//对象中的日记对象
switch (item.getItemId()) {
case R.id.menu_add_note:
Intent intent = new Intent(this,NewNoteActivity.class);
startActivityForResult(intent, NEW_NOTE);
return true;
case R.id.menu_delete_note:
deleteNote(entry);//耗时操作,开发异步方法
return true;
case R.id.menu_edit_note:
Intent editintent = new Intent(this,NewNoteActivity.class);
// 需要通知 NewNoteActivity 操作是一个编辑日记的操作
editintent.putExtra("iseditnote", true);
MyApp myapp = (MyApp) getApplication();
myapp.note = note;
startActivityForResult(editintent, EDIT_NOTE);
return true;
}
通过上下文菜单的方式进行删除添加日记的操作
最新推荐文章于 2019-01-10 03:07:08 发布