当前位置:编程学习 > wap >>

关于TextView不断赋值的问题

我通过webservice不停的读取数据 然后
TextView tv = new TextView(ctx);

tv.setText("欢迎大帅哥" + name);

将tv放入一个list中

下次就从list中拿出来再settext赋值 可是值会重叠在一起 如:1和2两次赋值  1和2就显示在一起 --------------------编程问答-------------------- 不明白啥意思啊~~~ --------------------编程问答-------------------- 就是用代码的行驶构建一个textview 然后把他add到一个List中 然后不停的从List中把里面的textview取出来重新赋值。赋值的结果就是这次和上次的值同时出现~~~~


textview 是在windowmanagemen 中的 --------------------编程问答-------------------- 能提供点代码吗?亲 --------------------编程问答--------------------
package com.wujw;

import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.TextView;

public class PaomadengActivity extends Activity {
private final Random mGenerator = new Random();
TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     // TODO Auto-generated method stub
        WindowManager.LayoutParams textViewparams1 = new WindowManager.LayoutParams();
        textViewparams1.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
      | WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
      // params1.width = WindowManager.LayoutParams.FILL_PARENT;
      // params1.height = WindowManager.LayoutParams.WRAP_CONTENT;
      textViewparams1.width = 341;
      textViewparams1.height = 390;
      textViewparams1.alpha = 100;
      textViewparams1.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
      | LayoutParams.FLAG_NOT_FOCUSABLE;
      textViewparams1.gravity = Gravity.LEFT | Gravity.TOP;
      // 以屏幕左上角为原点,设置x、y初始值
      textViewparams1.x = 0;
      textViewparams1.y = 300;
        
        tv = new TextView(this);
        WindowManager wm =  (WindowManager) getApplicationContext().getSystemService(
WINDOW_SERVICE);
        wm.addView(tv, textViewparams1);
        new T().start();
    }
    
    private Handler mh = new Handler(){

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.what==0){
tv.setText(mGenerator.nextInt()+"");
}
super.handleMessage(msg);
}
    
    };
    
    public class T extends Thread{
     @Override
public void run() {
// ......处理比较耗时的操作
while (true) {
// 处理完成后给handler发送消息
Message msg = new Message();
msg.what = 0;
mh.sendMessage(msg);
try {
T.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
    }
}
--------------------编程问答-------------------- 所有的代码都在这边了 --------------------编程问答-------------------- 我看你没有加到list里啊,只是一个线程一直在改text的文字而已 --------------------编程问答-------------------- 效果是一样的 在WindowManager中的textiew显示的时候会重起来 但是在xml中的就不会~ --------------------编程问答-------------------- 将
tv.setText(mGenerator.nextInt()+"");
改为
if(tv.getText !=null)
tv.setText(tv.getText.toString() + mGenerator.nextInt() + "");
else
tv.setText(mGenerator.nextInt() + "");

你要的是这个效果吧?


--------------------编程问答--------------------
引用 8 楼  的回复:

tv.setText(mGenerator.nextInt()+"");
改为
if(tv.getText !=null)
tv.setText(tv.getText.toString() + mGenerator.nextInt() + "");
else
tv.setText(mGenerator.nextInt() + "");

你要的是这个效果吧?
不是的 我是不断的更新数据  --------------------编程问答-------------------- wujiawei这个问题搞定了么。刚想看看用handler行不行,我以为是我用runonuithread的缘故呢,看来不是
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,