您的位置:首页 > 产品设计 > UI/UE

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

2015-03-08 22:01 766 查看
这是根据《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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐