ActionBar Option Menu创建流程

Option Menu

Option Menu,从翻译来看是“选择菜单”的意思,然而某些专业名词就不应该给它翻译,大家简单认为它是在ActionBar上面的一种菜单即可。在Android中,菜单还有其它几种,例如上下文菜单——Context Menu,弹出菜单——PopupMenu。其中Option Menu和Context Menu都是通过Activity中的回调方法来创建的。

相信大家也很清楚Option Menu如何使用。在Activity里的回调方法onCreateOptionsMenu方法中添加菜单项到Menu中,并返回true即可:

1
2
3
4
5
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

然后在方法onOptionsItemSelected对菜单项的点击事件进行监听:

1
2
3
4
5
6
7
8
9
10
11
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action1 :
return true;
case android.R.id.home :
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}

Option Menu创建流程

Read More

Comments

github博客关联域名

github博客

github是程序员最喜欢的交友网站,github博客(github pages)是程序员越来越喜欢的个人主页。

上面这句话不是我说的,然而作为一个程序员,我应该也要站下队。于是我也在捣腾起github,有了这个博客。

怎么创建github pages并使用hexo开始写博之旅?自己网上找手把手教程,很多大牛都会手把手教你。

这里我来说说(记录)怎么给github pages绑定域名。关于绑定域名,网上也有很多相关的文章。

但可能这些都因为内容比较多,让你的脑袋转不过来。那我直接来死板教程,把我这个小白绑定域名的过程写一下。

前提:已经有可以访问的github pages

Read More

Comments

聊一下c++中的函数指针

最近在学习c++,想一边学习一边做笔记。使用博客来做笔记好像也挺大材小用的,没办法,也在培养写博客的习惯,就随便写一些吧。那么,就来说一下我在学习c++函数指针时的想法。

说起函数指针,隐约记得大一上c语言这门课有学,然而那时自己愚钝,就是理解不了(或许那时理解了,却忘了)。现在重新学起,感觉没那么吃力了,毕竟有学习了其它语言的积累。

那么,什么是函数指针?在我理解,就是指向函数的指针。有了这种指针,那么可以把函数进行传递。如果没有指针,一个函数就只能被调用。把函数进行传递,可以有什么作用?下面看一个例子。

Read More

Comments

Android Studio加入jni模块并调试jni代码

最新Android Studio支持jni啦! 但是google上搜索资料是说使用experimental版本插件(Experimental Plugin User Guide)来集成jni模块,我试过的确好用,会自动帮你生成对应的jni方法,不用使用javah生成头文件,再用ndk工具编译出so库再使用了。但是experimental版本插件现在还在测试中,而且进度缓慢,另外对build.gradle的配置也和普通的不一样,不知道是否有不稳定的情况。

然而,最近有个同事在研究一门技术时发现普通的android gradle插件也可以加入jni模块,和experimental版本插件差不多。瞬间觉得很高大上,但是google有没用相关的说明,觉得奇怪,莫非也是在测试阶段?管它呢,先知道一下怎么玩再说。

Read More

Comments

Android中窗口添加ActionBar

有没有想过,在eclipse或studio中创建一个android项目,自动生成app工程后直接运行就能看到ActionBar的存在,而且看工程代码里并没有添加ActionBar相关的代码,这是为什么呢?很显然,在默认的情况下,系统(或兼容库)提供的窗口已集成了ActionBar,应用开发只需要使用它即可。

在应用setContentView的时候,系统会为这个窗口添加一个基础的布局来作为应用内容的容器。在Activity中setContentView最终会调用到PhoneWindow中的setContentView方法(关于PhoneWindow的构造过程可以参考其它资料),PhoneWindow是管理窗口基础内容的类。看看它的setContentView方法:

Read More

Comments

Android ActionBar计划

开始写博客吧!

ActionBar学习计划

前言

对着ActionBar也有一段时间了,算是比较熟也能拿得出场子的东西,就以它作为开山之作吧。

想了解一下ActionBar的历史,猛的发现我们大神的博客有介绍ActionBar的使用,还十分详细,想了解用法的可以去看看:http://blog.csdn.net/xyz_lmn/article/details/8132420

这里我就不废话ActionBar的前世今生了。虽然从Android 4.4开始,我就接触ActionBar,但我并不想再去详细说旧版本的东西,这是ActionBar的学习计划,我也本着学习的心态从较新的Android M版本出发来介绍ActionBar的实现。

由于ActionBar是一个比较庞大的组件,它并不是一个独立的View,是由许多View和控制辅助类来共同实现的,另外我是博客菜鸟,文章写的比较慢,如果要把一整套完成后才发布可能要等到猴年马月,所以打算是把它分成一系列的文章来学习,也算是一个循序渐进的过程,文章短短的也好接受(老罗的Android之旅尼玛有些文章长的我都没信心看了)。如果你看到这系列文章,我已经假定你已经把Android M的源码下载下来了。

Read More

Comments

首篇

博客

终于,参考大神的这篇文章《史上最详细的Hexo博客搭建图文教程》搭建了自己的博客,现在都是hexo提供的模版,感觉hexo屌屌的,以后会抽时间在样式的定制上。

写博客主要是为了总结自己,以及培养自己写文档的能力(不写文档的程序员都不是好程序员),希望能多产出。

目标

由于现在的工作重点是android控件,所以先把自己以前做过的工作——frameworks的部分控件整理一些文档出来,算是总结吧。

希望有了博客的推动,自己会在技术上多上心,然后可以多分享一些技术。

Comments