0

我试图让我的 textView 每隔一两分钟出现在屏幕的不同位置(延迟并不重要)。我看到有人建议我使用 runOnUiThread 让计时器重复随机功能并更新 UI。

我真的很难理解这些不同的线程,只是想知道是否有人可以给我一个例子?还是我应该使用不同的东西进行研究?

Public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView textView = (TextView) findViewById(R.id.digitalClock1);  
    Random r = new Random();

    int x = r.nextInt(350 - 100);
    int y = r.nextInt(800 - 100);

    textView.setX(x);  
    textView.setY(y);
}
4

2 回答 2

0

试试这个方法

public void doInback()
    {
        handler.postDelayed(new Runnable() {

            @Override
            public void run()
            {
                // TODO Auto-generated method stub
                // Try the code that you want to repeat


                doInback();
            }
        }, 1000);

    }

只需调用您要使用的方法。

于 2013-04-22T15:32:35.317 回答
0

在下面创建可运行对象和处理程序

 private Runnable runnable = new Runnable(){
    @Override
    public void run() {         
        handler.sendEmptyMessage(0);
    }
};
Handler handler = new Handler() {       
    @Override
    public void handleMessage(Message msg) {            
        //change the text position here         
        this.postDelayed(runnable , TIME_OUT_MS);
        }
    }; 

TIME_OUT_MS 是您想要的超时时间(以毫秒为单位)。

并将其放在活动的 OnCreate() 方法上

    Thread thread =new Thread(runnable );
     thread.start();
于 2013-04-22T20:40:20.503 回答