我尝试在onCreate()的活动中恢复之前初始化的视图,但我不知道如何执行此操作。
它看起来像这样:
public class activityA extends AppCompatActivity {
public ImageView ivImg1;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutA);
ivImg1 = (ImageView)findViewById(R.id.img1);
}
图片视图没有任何资源。我在另一个类中创建了一个Handler:
public class firstClass{
final private imgHandler mHandler = new imgHandler();
final int KEY = 1;
Message msg = mHandler.obtainMessage(KEY,R.drawable.face1,0,ivImg1);
mHandler.sendMessage(msg);
}
现在我想将第一个参数R.drawable.face1
设置为我的处理程序中的ImageView:
public class imgHandler extends Handler {
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
ImageView viewToSet = (ImageView)msg.obj;
viewToSet.setImageResource(msg.arg1); //Here is the logcat error
}
}
我导致java.lang.NullPointerException。我认为这是因为我在邮件中发送的对象是空的。在onCreate中,视图在内部,但是当我在消息中调用它时,findViewById
不在ivImg1
中。
类FirstClass在一个新的Thread中,类imgHandler在UI Thread中。
我希望有人可以帮助我。 抱歉我的英文。