Android - 如何在onCreate中初始化视图?

时间:2016-10-07 15:29:25

标签: android handler

我尝试在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中。

我希望有人可以帮助我。 抱歉我的英文。

0 个答案:

没有答案