java无法从可运行的Android更新映像
我有以下实现runnable的类。当我启动线程时,我得到一个错误,阻止我更新图像。我尝试过设置图像,正如您将在runOnUiThread
函数中看到的那样,但它不起作用。我希望最终每x秒更新一次图像,但我似乎无法做到这一点,除非我将线程放在主活动类中。一旦我把它搬出去,我就什么也不做了
public class Test implements Runnable {
MainActivity activity;
ArrayList<Media> media = new ArrayList<Media>();
public Test(MainActivity activity){
this.activity = activity;
}
public void run(){
activity.runOnUiThread(new Runnable(){
@Override
public void run() {
ImageView img= (ImageView) activity.findViewById(R.id.imageView1);
img.setImageResource(R.drawable.ic_launcher_foreground);
}
});
}
}
在MainActivity.java
的onCreate()
函数中启动线程
Test p = new Test(this);
Thread t = new Thread(p);
t.start();
那么我的错误是:
2019-10-31 19:26:47.274 5407-5407/com.desotomatrix.digitalsignageplayer E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.desotomatrix.digitalsignageplayer, PID: 5407
java.lang.NullPointerException: Attempt to invoke virtual method 'void 安卓.widget.ImageView.setImageResource(int)' on a null object reference
at com.desotomatrix.digitalsignageplayer.Test$1.run(Test.java:30)
at 安卓.os.Handler.handleCallback(Handler.java:873)
at 安卓.os.Handler.dispatchMessage(Handler.java:99)
at 安卓.os.Looper.loop(Looper.java:209)
at 安卓.app.ActivityThread.main(ActivityThread.java:7021)
at java.lang.reflect.Method.invoke(Native Method)
at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:486)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:872)
共 (0) 个答案