swarosky44 2015-09-29 06:35 采纳率: 100%
浏览 4963
已采纳

Android中动态向TextView传值的问题

MainActivity的代码:

package com.example.androidsendnum;

import java.io.InterruptedIOException;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

int i;
int j;
boolean flag;
Thread thread = new Thread();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Button bnSend =(Button)findViewById(R.id.send);
    final Button bnStop =(Button)findViewById(R.id.stop);
    TextView sendView =(TextView)findViewById(R.id.sendtext);
    TextView receiveView =(TextView)findViewById(R.id.receivetext);

    bnSend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            flag=true;
            thread.start();
        }
    });

    bnStop.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub  
            flag=false;
        }
    });

    sendView.setText(i);
    receiveView.setText(i);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true; 
}

public void run() {
    // TODO Auto-generated method stub
    while(flag){
        for(i=1,j=0;j<100;i++,j++){
            try {
                thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

}

但是在模拟器中就打不开
图片说明

  • 写回答

4条回答 默认 最新

  • 月盡天明 博客专家认证 2015-09-30 08:26
    关注

    你想通过thread循环给textview赋值?

    Android不允许在非主线程中操作UI。
    所以你需要用到**handler** 处理、

    MyHandler handler  = new MyHandler();
    
     handler.sendEmptyMessage(msg);
    
     ..
     ..
     ..
    
     private Class MyHandler extends Handler{
    
         @Override
        handlerMessage(Message msg){
    
            //此处处理你发送的handler,然后控制UI
    
        }
    
     }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?