我想單擊按鈕時啓動線程。該線程每秒鐘都會移動一個View,但它不起作用。下面的代碼:使視圖移動線程
public class MainActivity extends Activity {
private boolean juegoEmpezado = false;
private int clicks = 0;
private int margenTop = 20;
private int crecimientoMargen = 10;
private int velocidadDeCrecimiento = 1000;
private LayoutParams parametrosLayout;
private TextView item;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
item = (TextView)findViewById(R.id.textView1);
item.setText("asasas");
parametrosLayout = (LayoutParams) item.getLayoutParams();
}
@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 empezarJuego(View v) {
juegoEmpezado = true;
empezar();
}
public void empezar() {
runOnUiThread(new Runnable() {
@Override
public void run() {
while(juegoEmpezado) {
try {
Thread.sleep(velocidadDeCrecimiento);
parametrosLayout.topMargin = margenTop;
margenTop += crecimientoMargen;
item.setLayoutParams(parametrosLayout);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}
}
的empezar()
方法是,當我點擊按鈕觸發該方法。
它不起作用。我看到這個問題:Android "Only the original thread that created a view hierarchy can touch its views."
但它不能幫助我。你能告訴我問題在哪裏嗎?
它的工作原理,謝謝! –