• 挑战练习13.6 删除crime 记录


    CriminalIntent应用目前不支持删除现有crime记录。请为CrimeFragment添加菜单项,允许用户删除当前crime记录。用户点击删除菜单项后,记得调用CrimeFragment托管活动的finish()方法回退到前一个activity界面。


    步骤跟书里添加的那段差不多:

    1.创建菜单资源,在res/menu目录下添加fragment_crime.xml文件,图标可以自己做,这里略

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <menu xmlns:android="http://schemas.android.com/apk/res/android"
    3     xmlns:app="http://schemas.android.com/apk/res-auto">
    4     <item
    5         android:id="@+id/delete_crime"
    6         android:icon="@drawable/ic_menu_delete"
    7         app:showAsAction="ifRoom|withText"
    8         android:title="delete_crime" />
    9 </menu>

    2.在CrimeFragment.java中,覆盖onCreateOptionsMenu(Menu, MenuInflater)方法,实例化fragment_crime.xml中定义的菜单

    1 @Override
    2     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    3         super.onCreateOptionsMenu(menu, inflater);
    4         inflater.inflate(R.menu.fragment_crime, menu);
    5     }

    3.定义CrimeFragment.onCreate(Bundle) 方法, 调用setHasOptionsMenu方法让FragmentManager知道CrimeFragment需接收选项菜单方法回调。

    1 @Override
    2     public void onCreate(@Nullable Bundle savedInstanceState) {
    3         super.onCreate(savedInstanceState);
    4 
    5         UUID crimeId = (UUID)getArguments().getSerializable(ARG_CRIME_ID);
    6         mCrime = CrimeLab.get(getActivity()).getCrime(crimeId);
    7 
    8         setHasOptionsMenu(true);
    9     }

    4.为了响应用户点击Delete Crime菜单项,需实现新方法以crime页删除当前Crime。在CrimeLab.java中,新增一个removeCrime()方法。

     1 public void removeCrime(Crime c) { 2 mCrimes.remove(c); 3 } 

    5.在CrimeFragment.java中,实现onOptionsItemSelected(MenuItem)方法,以响应菜单项的选择事件,通过检查菜单项ID判断选的是哪个菜单项。在该方法中,删除当前的Crime实例,最后调用CrimeFragment托管活动的finish()方法回退到前一个activity界面。

     1 @Override
     2     public boolean onOptionsItemSelected(MenuItem item) {
     3         switch (item.getItemId()) {
     4             case R.id.delete_crime:
     5                 CrimeLab.get(getActivity()).removeCrime(mCrime);
     6                 getActivity().finish();
     7                 return true;
     8             default:
     9                 return super.onOptionsItemSelected(item);
    10         }
    11     }

    6.运行效果:


     

  • 相关阅读:
    jmeter bean shell断言加密的响应信息(加密接口测试二)
    java ID3算法
    MPI常用函数
    数据结构——单链表
    RBM代码注释c++
    MPI_一个简单的消息传递
    电路测试
    java KNN算法
    [转]矩阵分解在推荐系统中的应用
    java EM算法
  • 原文地址:https://www.cnblogs.com/real1587/p/10026991.html
Copyright © 2020-2023  润新知