【发布时间】:2012-02-21 21:27:21
【问题描述】:
这是我的代码,我试图让多个图像在屏幕上滑动。在“TimerTask thisTimerTask = new ThisClass();”中为“ThisClass”显示特定错误线。我感谢任何可用的反馈
package your.package2.namespace2;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.view.Display;
import android.widget.Button;
import android.widget.ImageView;
@SuppressWarnings("unused")
public class ChangeuppicksActivity extends Activity {
Display thisDisplay;
ImageView img, img4, img5, img7;
Timer timer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
thisDisplay = getWindowManager().getDefaultDisplay();
TimerTask thisTimerTask = new ThisClass();
timer = new Timer();
timer.scheduleAtFixedRate(thisTimerTask, 1000, 16);
img = (ImageView) findViewById(R.id.pic1);
img4 = (ImageView) findViewById(R.id.pic4);
img5 = (ImageView) findViewById(R.id.pic5);
img7 = (ImageView) findViewById(R.id.pic7);
}
public void doSomething() {
int slideToPOS_X = (img.getLeft() - 7);
if (slideToPOS_X <= -img.getWidth()) {
int slideToPOS_X2 = (img4.getLeft() - 5);
if (slideToPOS_X2 <= -img4.getWidth()) {
slideToPOS_X2 = thisDisplay.getWidth();
}
img.layout(slideToPOS_X, 0, (slideToPOS_X + img.getWidth()), (0 + img.getHeight()));;
img4.layout(slideToPOS_X2, 0, (slideToPOS_X2 + img4.getWidth()), (0 + img4.getHeight()));
}
class ThisClass extends TimerTask {
@Override
public void run() {
ChangeuppicksActivity.this.runOnUiThread(new Runnable() {
public void run() {
doSomething();
}
});
}
}
}
}
【问题讨论】:
-
你能提供一些关于ThisClass的信息吗?它是 TimerTask 的子类?
-
试着把你的
ThisClass设为public。 -
据我所知,子类必须是静态的,所以试试 public static class ThisClass... 但我不完全确定这是否能解决问题。