线程无法修改布局

时间:2015-12-07 20:40:30

标签: android multithreading user-interface nullpointerexception findviewbyid

onCreate()方法中,我有以下代码:

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mapview);

    setupGui();
    mHandler = new Handler();

    mv = new MapView();
    (new Thread(){
        public void run() {
            while (true) {
                try {
                    Thread.sleep(1000);
                    mHandler.post(new Runnable() {

                        @Override
                        public void run() {

                          mv.createPlane(true);
                        }
                    });
                } catch (Exception e) {
                }
            }
        }
    }).start();
}

其中mv是我所在类的名称,其中包含用于将一些新元素放到UI上的createPlane(boolean)方法。这个方法:

public void createPlane(boolean left) {
    linL = (LinearLayout) findViewById(R.id.ll);
}

这不起作用。 (NullPointerExceptionfindViewById()

1 个答案:

答案 0 :(得分:0)

可能,问题在于您的订单。在尝试按ID查找该视图中的视图之前,您必须对视图进行充气。在你夸大任何东西之前,你正试图findViewById!你只拥有MapView个对象。

您需要确保在运行线程之前,包含R.id.ll的视图会膨胀。

相关问题