关于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;--------------------编程问答-------------------- 所有的代码都在这边了 --------------------编程问答-------------------- 我看你没有加到list里啊,只是一个线程一直在改text的文字而已 --------------------编程问答-------------------- 效果是一样的 在WindowManager中的textiew显示的时候会重起来 但是在xml中的就不会~ --------------------编程问答-------------------- 将
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();
}
}
}
}
}
tv.setText(mGenerator.nextInt()+"");
改为
if(tv.getText !=null)
tv.setText(tv.getText.toString() + mGenerator.nextInt() + "");
else
tv.setText(mGenerator.nextInt() + "");
你要的是这个效果吧?
--------------------编程问答-------------------- 不是的 我是不断的更新数据 --------------------编程问答-------------------- wujiawei这个问题搞定了么。刚想看看用handler行不行,我以为是我用runonuithread的缘故呢,看来不是
补充:移动开发 , Android