无花的空间--http://wuhua.3geye.net-- 您今天UCWEB了吗?--http://www.ucweb.com

当你来到我的空间的时候,你会看到很多Google,Nokia,Mobile,J2ME ,Android,3G,无线开发,手机软件,手机软件开发等与Google,手机相关的文章,你千万不要惊讶。这就是我一个专注Google,无线开发的无花。传播知识,分享经验,技术交流是我开空间的直接目的。当然如果有项目开发,我还是很希望赚点外快的。

饶荣庆ID:gooogledev
36103次访问,排名3076好友11人,关注者14
J2EE 2年的开发时间,
J2ME 2年的开发时间
[即时聊天] [发私信]
gooogledev的文章
原创 78 篇
翻译 0 篇
转载 3 篇
评论 200 篇
无花的公告

人要吃很多苦才可以长大!

踏实平凡人应该遵守的原则!

与我TM

gooogledev@gmail.com

友情链接

我的j2me创意

Wap浏览器的源代码

用自己写的rms引擎写的电话本

RSS订阅此博客  
用抓虾订阅此博客
用google订阅此博客
用bloglines订阅此博客
    网络封神榜 | 饶荣庆
最近评论
yg:
[url=http://www.item4trade.com/]wow gold[/url]
[url=http://www.item4trade.com/]power leveling[/url]
[url=http://www.item4trade.com/]powerleveling[/url]
[url=http://www.item4tra……
weiguochuli:if(flags) flags可是boolean型的数组啊,报错的!还有如果选中了两个值但images.size() 的值是3的话第一个值会得到两遍的。
路过:没想到百度到你这里来了
zryStar:嘿嘿,向楼主学习,对这行了解不是很深,希望学到东西
nike shoes:[url=http://www.molybdenum-tungsten.com]tungsten carbide[/url]
[url=http://www.66773388.com]nike shoes[/url]
[url=http://www.66773388.com]jordan shoes[/url]
[url=http://www.66773388……
文章分类
收藏
    相册
    j2me创意图片
    j2me教程
    我的照片
    我的链接
    3G视线
    EasyMF J2ME框架
    Lucene中国
    我的Google
    无花的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Android invalidate 与postInvalidate用法 收藏

    新一篇: 中国手机发展简史 | 旧一篇: 关于点阵字库在J2ME的实现。

    原创文章转载须留下
    http://www.3geye.net/?3/viewspace-2925 链接


    根据Android SDK api文档说明
    invalidate 方法是用来更新视图(View)的方法,不过这东西的用法比较古怪
    invalidate 方法如果你直接在主线程中调用,是看不到任何更新的。
    如果跟线程结合使用的话
    比如在下面的代码中就会抛出异常

    UIThread implements Runnable{
    public void run(){
      invalidate();
      }
    }
    上面的代码会抛出Only the original thread that created a view hierarchy can touch its views。
    怎么样解决上面的问题呢,如果你有两个View,你需要一个View用来显示当前的状态,一个Thread去下载网络数据
    或者是读取文件等,这些数据读取完毕后你要更新View到当前屏幕上怎么办呢。看看下面的代码,也许可以帮助你

    第一种解决方案是:
    class UIUpdateThread implements Runnable{

                public void run() {
                    try {
                        Thread.sleep(1000*5);
                        mHandler.post(mUpdateResults);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                   
                }
               
                 final Handler mHandler = new Handler();
                    final Runnable mUpdateResults = new Runnable() {
                        public void run() {
                            invalidate(); //更新视图
                        }
                    };
               
    }
    你必须实现一个Handler.然后再你下载数据的线程中放上一个mHandler.post(mUpdateResults);这样就可以了。

    第2中方案比较简单

    LoadDataThread implements Runnable{
    public void run(){
       doLoadData();
       mHandler.sendMessage(mHandler.obtainMessage()); //这里系统会自动调用handleMessage;这样就可以更新视图了
       }
    }

      Handler mHandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                // 这里处理视图需要更新的代码。
                       
            }
       };
      
       总结,发现Google Android 好像有点弱智了。Api这么难用,不如J2ME简单啊。
      
      
     对于postInvalidate用法来说就相对简单点了直接调用就OK了,这里就不详细说了。
        

    发表于 @ 2008年03月05日 16:10:00|评论(loading...)|编辑

    新一篇: 中国手机发展简史 | 旧一篇: 关于点阵字库在J2ME的实现。

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 无花