android-Android Handler更新界面出错,

问题描述

Android Handler更新界面出错,
    Handler handler = new Handler() {
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        ReturnShow.setText(sMsg);//ReturnShow是一个EditText 错误在这里
        ReturnShow.setSelection(ReturnShow.length());
    }
};

class ReadThread extends Thread {
    public void run() {
        sMsg = "...";
        handler.sendMessage(handler.obtainMessage());
    }
}

代码如上, setText那里每次都要出错, 是什么原因? 附上错误信息

解决方案

RerurnShow为null
 ReturnShow = (EditText) findViewById(R.id.ResultShow);这句里面的ID搞错了,弄成一个非当前Activity的ID;

太粗心了

解决方案二:

需要在设置ReturnShow之前对它进行初始化..

比如这样:

ReturnShow = (EditText)findViewById(R.id.edittext);
时间: 2024-11-08 20:24:16

android-Android Handler更新界面出错,的相关文章

android 开发Handler源码剖析

Android的消息机制主要是Handler的运行机制,而讲Handler的机制,又需要和MessageQueue和Looper结合.MessageQueue中文意思是消息队列,虽说叫队列,但是其内部结构并不是队列组成的,而是采用了单链表的形式来存储消息.MessageQueue只是负责存储消息,并不处理消息(这里指消息的轮训),Looper刚好弥补了这个空缺.我在知道,Handler创建的时候,会默认为我们创建一个Looper对象,那么如何获取当前的Looper呢,这里就使用到了一个Thead

界面更新 listview-Handler里面不能更新界面 包括List和Button的显示 求大神解答

问题描述 Handler里面不能更新界面 包括List和Button的显示 求大神解答 首先设置的是Activity的OnCrate方法 public class CreateActivity extends Activity{ protected static CharSequence text = "Waiting Range"; public static MobilocMaster mobilocMaster = new MobilocMaster(); public stat

如何利用Handler更新android的UI

  提出问题 新手刚开始接触Android线程编程的时候,会想到如下使用如下代码: 复制到剪贴板  Java代码 new Thread( new Runnable() {         public void run() {              myView.invalidate();         }            }).start();     但是:该实现方法是不可行的. 分析问题: 因为:Android UI操作并不是线程安全的,这些操作必须在UI线程中执行. 1.my

android开发教程之子线程中更新界面_Android

每个Handler对象与创建它的线程相关联,并且每个Handler对象只能与一个线程相关联.Handler一般有两种用途:1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器.2)线程间通信.在Android的应用启动时,会创建一个主线程,主线程会创建一个消息队列来处理各种消息.当你创建子线程时,你可以再你的子线程中拿到父线程中创建的Handler对象,就可以通过该对象向父线程的消息队列发送消息了.由于Android要求在UI线程中更新界面,因此,可以通过该方法在其它线程中更新界面.

android开发教程之子线程中更新界面

每个Handler对象与创建它的线程相关联,并且每个Handler对象只能与一个线程相关联.Handler一般有两种用途:1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器.2)线程间通信.在Android的应用启动时,会创建一个主线程,主线程会创建一个消息队列来处理各种消息.当你创建子线程时,你可以再你的子线程中拿到父线程中创建的Handler对象,就可以通过该对象向父线程的消息队列发送消息了.由于Android要求在UI线程中更新界面,因此,可以通过该方法在其它线程中更新界面.

android用的handler更新进度条但是显示不出来并且进度条的高不能改总是那么高

问题描述 android用的handler更新进度条但是显示不出来并且进度条的高不能改总是那么高 xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layo

Android使用Handler和Message更新UI_Android

在Android中,在非主线程中更新UI控件是不安全的,app在运行时会直接Crash,所以当我们需要在非主线程中更新UI控件,那么就需要用到Handler和Message来实现 Demo中,使用到一个按钮和一个TextView,点击按钮之后改变TextView的内容,按钮点击时候新建一个进程,在进程中对UI控件进行修改. public class MainActivity extends Activity implements OnClickListener { private static

Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)_Android

本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法.分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView.今天的例子就是通过Handler AsyncTask两种方式来动态更新ListView. 布局main.xml: <?xml version="1.0&qu

android使用handler ui线程和子线程通讯更新ui示例_Android

复制代码 代码如下: package com.act262.sockettx; import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import and