《Android 编程权威指南》(Android Programming The Big Nerd Ranch Guide)的代码和问题

这是根据《Android 编程权威指南》(Android Programming The Big Nerd Ranch Guide)书中的例子工程的编码;

           

其中源码已上传到github 上,现在还没完成的,我会根据自己的学习进度不断的进行更新,直至完成整本书的学习。


       下面是CriminalIntent应用,源码在https://github.com/yxhuangCH/criminalintent ,可自行下载;

      

        2015.03.08 完成至第18章:上下文菜单与操作模式

         

其中第16章:操作栏, 因为版本的问题,书中的一些代码不能编译,所以进行了一些改动。 

        1.代码清单16-2 创建菜单资源

          改为

          

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:criminalintent ="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/menu_item_new_crime"
          android:icon="@drawable/ic_menu_add"
          android:title="@string/new_crime"
          criminalintent:showAsAction="always"/>
    <item android:id="@+id/menu_item_show_subtitle"
          android:title="@string/show_subtitle"
          android:showAsAction="ifRoom"/>
          <!--criminalintent:showAsAction="always"/>-->
        <!--因为是要是用兼容性,所以,第四行
         xmlns:criminalintent ="http://schemas.android.com/apk/res-auto" >
         和第八行criminalintent:showAsAction="always"/>
         加上,与 16.1.1章节中有所不同。
         -->
</menu>

        2、代码清单16-8 启动向上导航按钮

       将书本中的getActionBar()替换成getSupportActionBar(),然后进行类型转换。要不然会出现空指针异常。后面的代码清单16-15,16-16,16-19,中也要进行同样的修改。

   //16.2.1 启动向上的导航按钮
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
            if (NavUtils.getParentActivityName(getActivity()) != null){
                // 书本原句运行出线 NullPointerException
                // getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
                ((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            }
        }













你可能感兴趣的:(android,导航,menu)