我试图让我的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);
}
答案 0 :(得分: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);
}
只需调用您要使用的方法。
答案 1 :(得分:0)
创建下面的runnable和处理程序
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();