1、Menu.FIRST在reference中描述为:First value for group and item identifier integers.我们可以理解为ID设置的最小数值。

2、setDefaultKeyMode (int mode) 用来设置一个Activity的默认的按键模式, 

也就是指这种情况,当Activity中发生了一些按键事件,但是这些事件没有被任何控件Listen到时(截获时),

系统应该如何处理这些按键事件。

mode一共有五种

  • DEFAULT_KEYS_DISABLE //直接丢弃,这种情况你把键盘按穿了也不会有系统理你
  • DEFAULT_KEYS_DIALER    //将键盘事件传入拨号器进行处理
  • DEFAULT_KEYS_SHORTCUT //将键盘输入作为当前窗体上注册的快捷键,进行快捷键处理
  • DEFAULT_KEYS_SEARCH_LOCAL //将键盘输入作为搜索内容,进行本地搜索,如果本地没有实现自定义搜索,则使用全局搜索
  • DEFAULT_KEYS_SEARCH_GLOBAL //将键盘输入作为搜索内容,进行全局搜索

3、intent相关函数解析:

      Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。利用Intent所实现的软件复用的粒度是Activity/Service,比函数复用更高一些,另外耦合也更为松散。

settype

使用该函数表示要查找文件的mime类型(如*/*),这个和组件在manifest里定义的相对应,但在源代码里:

 public Intent setData(Uri data) {
mData = data;
mType = null;
return this;
}

作用是将type设为null。

 setdata  

该函数的参数是uri,所以要将数据通过该函数传递时,记得要把数据转化为uri,如Uri.fromFile(new File("/mnt/sdcard/"))。

 public Intent setType(String type) {
mData = null;
mType = type;
return this;
}

要同时设置data和type的话只能用函数setdataandtype

 public Intent setDataAndType(Uri data, String type) {
mData = data;
mType = type;
return this;
}

4、setOnCreateContextMenuListener

     所有的View 都可以监听setOnCreateContextMenuListener事件,长按都会弹出上下文菜单

View.setOnCreateContextMenuListener(OnCreateContextMenuListener l)

    或者在activity里面注册view的上下文菜单
           registerForContextMenu(View view)

    重写  
           public void onCreateContextMenu(ContextMenu menu, View v,
                   ContextMenuInfo menuInfo){ 
                    super.onCreateContextMenu(menu, v, menuInfo); 
           }
 
          @Override
          public boolean onContextItemSelected(MenuItem item){
                 if (item.getItemId() == 0){ 
                     //处理点击上下文菜单事件
                 }
          }
          处理对应的事件。
         --------------------------------------------------------------------------      
          长按ListView中的一项item弹出上下文菜单
          只需要监听ListView的 setOnCreateContextMenuListener事件即可
          然后重写对应的方法,同上面的一样。
 
          在onContextItemSelected中获取 ListView中item对象
          @Override
          public boolean onContextItemSelected(MenuItem item){
                  AdapterContextMenuInfo itemInfo = (AdapterContextMenuInfo)item.getMenuInfo();
                        // adapter    ListView 中用到的适配器
          Object itemValue = adapter.getItem(itemInfo.position);
                      //获取到item对象后就可以进行任何操作了
               
          }  
        ----------------------------------------------------------------------------

          单击View弹出上下文菜单
 
          View.setOnCreateContextMenuListener(OnCreateContextMenuListener l)
                  View.setOnClickListener(OnClickListener l)
 
          需要同时监听view的单击事件和上下文菜单事件
          然后在View的onClick调用 View.showContextMenu()方法。
 
          如下
          View.setOnClickListener(new OnClickListener(){ 
 
          @Override
          public void onClick(View v){
                View.showContextMenu(); 
          }
         );
 
        然后重新对应的方法,同上一个一样。
 
 
        这样,不论单击或者长按,都可以弹出上下文菜单。
 
        只要能监听到view对应的事件,应该都可以弹出上下文菜单,不过没有经过测试。

5、解决:在Activity中为什么要用managedQuery()

在实际做项目时,有时数据库经常会报cursor not close的warning,有的cursor你可以手动关闭,但是有一些就不可以了,比如当前是个listActivity,

他的adapter是个cursorAdapter,这里的cursor就不能关掉,当然你可以在onDestroy中做关闭的操作,可是我比较习惯把cursor定义为局部变量,不是全局可见的,

这样的话你就不能在onDestroy中关闭了。

后来就查看源代码,发现manageQuery可以为你维护这个cursor。在你退出activity时为你自动关闭

用getContentResolver().query(...)时有时会报cursor not close的warning。

android 边学边记 2015.10.16的更多相关文章

  1. 2016年10月31日 星期一 --出埃及记 Exodus 19:16

    2016年10月31日 星期一 --出埃及记 Exodus 19:16 On the morning of the third day there was thunder and lightning, ...

  2. [转]Android 学习资料分享(2015 版)

    转 Android 学习资料分享(2015 版) 原文地址:http://www.jianshu.com/p/874ff12a4c01 目录[-] 我是如何自学Android,资料分享(2015 版) ...

  3. 10.16 NOIP模拟赛

    目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...

  4. Android应用开发相关下载资源(2015/08/27更新)

    Android应用开发相关下载资源   官方终于发布了Android Studio正式版,Android Studio将会成为推荐使用的主要Android开发工具.   (1)Android SDK ...

  5. 2019.10.16&17小结

    话说也蛮久没写小结了,主要这两次考试失分严重,还是总结下吧. 10.16 T1 小奇挖矿2 100/0 [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市 ...

  6. [NOIP2018模拟赛10.16]手残报告

    [NOIP2018模拟赛10.16]手残报告 闲扯 炉石乱斗模式美滋滋啊,又颓到好晚... 上来T2先敲了树剖,看T1发现是个思博DP,然后没过大样例,写个暴力发现还是没过大样例!?才发现理解错题意了 ...

  7. [Android开发学iOS系列] Auto Layout

    [Android开发学iOS系列] Auto Layout 内容: 介绍什么是Auto Layout. 基本使用方法 在代码中写约束的方法 Auto Layout的原理 尺寸和优先级 Auto Lay ...

  8. 背水一战 Windows 10 (16) - 动画: ThemeAnimation(主题动画)

    [源码下载] 背水一战 Windows 10 (16) - 动画: ThemeAnimation(主题动画) 作者:webabcd 介绍背水一战 Windows 10 之 动画 PopInThemeA ...

  9. 4分钟apache自带ab压力测试工具使用: 2015.10.4

    2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部 ...

随机推荐

  1. tomcat那些事

    Tomcat7.0.22安装配置 1.下载tomcat7.0.22  下载地址:http://tomcat.apache.org/download-70.cgi 2.添加系统环境变量,我的电脑-> ...

  2. tc令牌桶限速心得

    一.实验拓扑与实验现象 实验拓扑如图所示,在①号机上发送数据,③号机上接受数据,同时在④号机的eth1与eth2网口限制速率为115200kbps,命令如下 tc qdisc add dev eth1 ...

  3. HTML5 Canvas动画效果演示 - 流浪的鱼 - 博客频道 - CSDN.NET

    HTML5 Canvas动画效果演示 - 流浪的鱼 - 博客频道 - CSDN.NET HTML5 Canvas动画效果演示

  4. vue.js的devtools安装

    安装 1.github下载地址:https://github.com/vuejs/vue-devtools 2.下载好后进入vue-devtools-master工程  执行npm install - ...

  5. 用Python实现九九乘法表

    1.用“#”组成的矩形的实现 代码 eight = int(input("Height:")) #用户输入高度 width = int(input("Width:&quo ...

  6. C# 之 抽象类与接口

    抽象类 C#同意把类和方法声明为abstract,即抽象类和抽象方法.抽象类通常代表一个抽象概念,它提供一个继承的出发点,当设计一个新的对象类时,一定是用来继承的,所以,在一个以继承关系形成的等级结构 ...

  7. 【分割平面,分割空间类题】【HDU1290 HDU2050】

    HDU 2050 折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. ios 项目被拒绝各种理由

    . Terms and conditions(法律与条款) 1.1 As a developer of applications for the App Store you are bound by ...

  9. dir_colors linux颜色配置

    在控制台下,用ls,就会发现,shell将不同类型的文件项目显示为不同的颜色.者可以提高效率,不用ls -l便能大概的把各个文件的类型情况了解一下. 你有没有想过更改这个着色配置呢? 其实,在/etc ...

  10. 理解ThreadLocal(一)

    早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地编写出优美的多线程程序. Th ...