当前位置:  编程技术>移动开发
本页文章导读:
    ▪MatrixCursor跟MergeCursor        MatrixCursor和MergeCursor 1、MatrixCursor创建记录 ContentProvider对外共享数据的时候的query()方法是需要一个cursor的, 但是如果没有数据库,而项目又需要从ContentProvider读取数据的时候怎么办? 更糟.........
    ▪ hitTest的功用与用法        hitTest的作用与用法 hitTest的作用:当在一个view上添加一个屏蔽罩,但又不影响对下面view的操作,也就是可以透过屏蔽罩对下面的view进行操作,这个函数就很好用了。     hitTest的用法:将下.........
    ▪ 写在20110831:FileObserver监听SD卡资料的变化       写在20110831:FileObserver监听SD卡文件的变化    手机上通常会遇到多媒体应用和FM等都能操作存储介质上的文件,有时候需要两边及时的同步,用发扫描广播的形式也可以通知其他应用文件.........

[1]MatrixCursor跟MergeCursor
    来源: 互联网  发布时间: 2014-02-18
MatrixCursor和MergeCursor
1、MatrixCursor创建记录
ContentProvider对外共享数据的时候的query()方法是需要一个cursor的,
但是如果没有数据库,而项目又需要从ContentProvider读取数据的时候怎么办?
更糟糕的是其他方法操作也都是需要cursor的。
此时就需要MatrixCursor了。相当有趣,它相当于为你模拟了一个表。

 

?
@Override
 
public Cursor query(Uri uri, String[] projection, String selection,
   String[] selectionArgs, String sortOrder) {
  String[] tableCursor = new String[] { "name","job","salary" };
  MatrixCursor cursor = new MatrixCursor(tableCursor);
  cursor.addRow(new Object[] { "1111","1111","1111" });
  return cursor;
}
2、MergeCursor 记录的合并
[java] view plaincopyprint?
  • Cursor c0 = MailboxList.this.managedQuery(  
  •                     EmailContent.Mailbox.CONTENT_URI,  
  •                     MailboxList.this.mListAdapter.PROJECTION,  
  •                     MAILBOX_SELECTION0,  
  •                     new String[] { String.valueOf(mAccountKey) },  
  •                     MailboxColumns.TYPE);  
  •             Cursor c1 = MailboxList.this.managedQuery(  
  •                         EmailContent.Mailbox.CONTENT_URI,  
  •                         MailboxList.this.mListAdapter.PROJECTION,  
  •                         MAILBOX_SELECTION,  
  •                         new String[] { String.valueOf(mAccountKey) },  
  •                         MailboxColumns.TYPE/* + "," + MailboxColumns.DISPLAY_NAME*/);  
  •             Cursor c2 = MailboxList.this.managedQuery(  
  •                     EmailContent.Mailbox.CONTENT_URI,  
  •                     MailboxList.this.mListAdapter.PROJECTION,  
  •                     MAILBOX_SELECTION1,  
  •                     new String[] { String.valueOf(mAccountKey) },  
  •                     MailboxColumns.TYPE/* + "," + MailboxColumns.DISPLAY_NAME*/);  
  •                  
  •             Cursor[] cursors = new Cursor[] { c0, c1, c2 };  
  •             Cursor c = new MergeCursor(cursors);  
  • Cursor c0 = MailboxList.this.managedQuery(
                        EmailContent.Mailbox.CONTENT_URI,
                        MailboxList.this.mListAdapter.PROJECTION,
                        MAILBOX_SELECTION0,
                        new String[] { String.valueOf(mAccountKey) },
                        MailboxColumns.TYPE);
            	Cursor c1 = MailboxList.this.managedQuery(
                            EmailContent.Mailbox.CONTENT_URI,
                            MailboxList.this.mListAdapter.PROJECTION,
                            MAILBOX_SELECTION,
                            new String[] { String.valueOf(mAccountKey) },
                            MailboxColumns.TYPE/* + "," + MailboxColumns.DISPLAY_NAME*/);
            	Cursor c2 = MailboxList.this.managedQuery(
                        EmailContent.Mailbox.CONTENT_URI,
                        MailboxList.this.mListAdapter.PROJECTION,
                        MAILBOX_SELECTION1,
                        new String[] { String.valueOf(mAccountKey) },
                        MailboxColumns.TYPE/* + "," + MailboxColumns.DISPLAY_NAME*/);
                   
                Cursor[] cursors = new Cursor[] { c0, c1, c2 };
                Cursor c = new MergeCursor(cursors);



        
    [2] hitTest的功用与用法
        来源: 互联网  发布时间: 2014-02-18
    hitTest的作用与用法

    hitTest的作用:当在一个view上添加一个屏蔽罩,但又不影响对下面view的操作,也就是可以透过屏蔽罩对下面的view进行操作,这个函数就很好用了。

     

     

    hitTest的用法:将下面的函数添加到UIView的子类中,也就是屏蔽罩类中即可。

     

    -(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event 

    {

        UIView *hitView = [super hitTest:point withEvent:event];

        if (hitView == self)

        {

            return nil;

        }

        else 

        {

            return hitView;

        }

    }


        
    [3] 写在20110831:FileObserver监听SD卡资料的变化
        来源: 互联网  发布时间: 2014-02-18
    写在20110831:FileObserver监听SD卡文件的变化
       手机上通常会遇到多媒体应用和FM等都能操作存储介质上的文件,有时候需要两边及时的同步,用发扫描广播的形式也可以通知其他应用文件发生变化了,也可以用注册一个FileObserver在应用中随时来监听存储介质上的文件是否发生变化,当然也要动态刷新之后界面才会更新。FileObserver类位于android.os包下,是用于监听文件访问、创建、修改、删除、移动等操作的监听器,基于linux的INotify。
         FileObserver是个抽象类,必须继承它才能使用。每个FileObserver对象监听一个单独的文件或者文件夹,如果监视的是一个文件夹,那么文件夹下所有的文件和级联子目录的改变都会触发监听的事件。如果是批量操作文件或者目录,需要根据实际的情况处理。监听的事件类型如下,下面所有静态变量都是FileObserver静态属性。FileObserver对象必须保持一个引用,确保不被垃圾收集器回收掉,否则就不会触发事件,这里可以考虑使用Service服务。

    ACCESS,即文件被访问。
    MODIFY,文件被修改。
    ATTRIB,文件属性被修改,如 chmod、chown、touch 等。
    CLOSE_WRITE,可写文件被 close。
    CLOSE_NOWRITE,不可写文件被 close。
    OPEN,文件被 open。
    MOVED_FROM,文件被移走,如 mv。
    MOVED_TO,文件被移来,如 mv、cp。
    CREATE,创建新文件。
    DELETE,文件被删除,如 rm。
    DELETE_SELF,自删除,即一个可执行文件在执行时删除自己。
    MOVE_SELF,自移动,即一个可执行文件在执行时移动自己。
    CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)。
    ALL_EVENTS,包括上面的所有事件。

    SD卡中的目录创建监听器
    import android.os.FileObserver;  
    import android.util.Log;  
      
    public class SDCardListener extends FileObserver {  

           public SDCardListener(String path) {
               /* super(String,int) 则int参数是要监听的事件类型. */
               super(path);  
           }  
      
           @Override 
           public void onEvent(int event, String path) {         
                  switch(event) {  
                         case FileObserver.ALL_EVENTS:  
                                Log.d("all", "path:"+ path);  
                                break;  
                         case FileObserver.CREATE:  
                                Log.d("Create", "path:"+ path);  
                                break;  
                  }  
          }  
    }

    给目录设置监听器:
    SDCardListener listener = new SDCardListener("目录");    
    //开始监听     
    listener.startWatching();     
    /*  
    * 在这里做一些操作,比如创建目录什么的  
    */     
    //停止监听     
    listener.stopWatching();   


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    c/c++ iis7站长之家
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3