UI更新demo

Advertisement

自己闲暇之余随便写的demo(更新textView),布局里面只有一个按钮和TextView:

public class LooperHandlerActivity extends Activity {

    //更新UI
    private Handler mHandler;

    private Button mBtn;

    private TextView tv_UI;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_looper_handler);
        tv_UI = (TextView) findViewById(R.id.tv_UI);
        mBtn = (Button) findViewById(R.id.mBtn);
        initThreadLooper();
    }

    private void initThreadLooper() {
        mHandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                tv_UI.setText(msg.what+"");
                if(msg.what == 9){
                    mBtn.setClickable(true);
                }
            }
        };

        mBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                LooperThread thread = new LooperThread();
                thread.setHandler(mHandler);
                thread.start();
                mBtn.setClickable(false);
            }
        });
    }

    /**
     * 创建一个子线程
     */
    class LooperThread extends Thread{

        Handler handler;

        public void setHandler(Handler handler){
            this.handler = handler;
        }

        @Override
        public void run() {
            Looper.prepare();
            for (int i = 0; i < 10; i++) {
                try {
                    sleep(1000);
                    handler.sendEmptyMessageDelayed(i,0);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            Looper.loop();
        }
    }
}

Similar Posts:

  • Android preference与ActivityGroup UI更新

    之前发过一篇有关于自定义preference 在ActivityGroup 的包容下出现UI不能更新的问题,当时还以为是Android 的一个BUG 现在想想真可笑 .其实是自己对机制的理解不够深刻,看来以后要多看看源码才行. 本篇讲述内容大致为如何自定义preference 开始到与ActivityGroup 互用下UI更新的解决方法. 首先从扩展preference开始: 类文件必须继承自Preference并实现构造函数,这里我一般实现两个构造函数分别如下(类名为:test): publi

  • block回调中调用方法的UI更新问题

    block回调中调用方法的UI更新问题 问题描述/分析 上述两个界面的开发过程中,均出现一个情况就是UITableView没有立即出现,而是需要手动滑动UITableView,UI才会更新. 也就说明[tableView reloadData]方法一开始没被调用. 最终发现是因为在block回调中直接调用[tableViewreloadData]方法,而与UI更新的方法必须要在主线程中实现,而block回调是在别的线程中的,所以就无法实现data reload. 所以必须要把UI更新的操作放回主

  • 【Android 非人为操作的UI更新】在onCreate()和onResume()等方法中的更新UI操作方法及获取View的相关消息

    Android中布局布置时及在onCreate()和onResume()方法结束后才完成,在此期间是无法普通的操作UI更新的. 而方法是调用线程post等异步操作. 就是要想再onCreate()和onResume()时就进行UI更新如Mp3播放器的歌词更新等操作可以运用post()方法,而View.post()是专门用来执行此操作的. 非人为操作更新UI普遍使用post()方法来通知系统让它自己更新!!!同时也可以在该post(Runnable )的Runnable方法中获取View的相关消息

  • Android中的UI更新(2)

    继续前一个话题,在非UI线程中更新UI组件,除了使用前一篇博文提到的Handler以外,还有另一种常用的方法--异步任务(AsyncTask). 异步任务类AsyncTask<Params,Progress,Result>类是一个抽象类,通常用于被继承.继承时需要指定三个泛型参数: Params:启动任务执行的输入参数的类型. Progress:后台任务完成的进度值的类型. Result:后台执行任务完成后返回结果的类型. 这三个参数单独理解起来比较抽象,结合重写的AsyncTask的4个方法

  • Android:UI更新方法五:利用AsyncTask更新UI

    关于AsyncTask的用法: 主要翻译自:http://developer.android.com/reference/android/os/AsyncTask.html 3个范型参数: Params启动任务执行的输入参数 Progress后台任务执行的百分比 Result,后台计算的结果类型 在一个异步任务里,不是所有的类型总被用.假如一个类型不被使用,可以简单地使用Void类型: private class MyTask extends AsyncTask<Void,Void,Void>

  • Android:UI更新方法三:Handler+Worker Thread

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" a

  • jQuery UI dialog Demo (来自 http://jqueryui.com/demos/)

    <!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

  • Android sqlite 数据库查询,插入,删除,更新demo&lt;第2章&gt;

    接下来,测试DataBasehelper  ,创建activity,并在activity中创建option menu,实现插入,删除,更新,操作完成后查询数据库,显示在activity中的ListView. 如图: 实现这个demo,需要创建三个控件, 一个是activity的布局文件fragment_list_view.xml ; ListView布局中需要显示的列表控件 user_info.xml,主要是要显示的列名内容的控件; 最后一个是menu控件  option_menu.xml //

  • JQuer ui Dialog Demo笔记

    <!doctype html> <html> <head> <meta charset="utf-8"> <title>jquery ui 对话框</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">

  • Android sqlite 数据库查询,插入,删除,更新demo&lt;第4章&gt;---查询

    根据第2章,插入完成后,退出编辑界面,返回ListView界面并显示数据库中的内容. 因此在onResume()方法中处理ListView数据,并显示在这使用了SimCursorAdapter,下面介绍一下... public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[]to,int flags) 该适配器类标准的构造函数.(译者注:3.0新添的构造方法)原来的已经弃用,增加了一个