【问题标题】:Change Layout when Thread finish线程完成时更改布局
【发布时间】:2013-08-07 04:15:18
【问题描述】:

我想在线程结束时更改布局,但我不明白这个错误;例如:

分辨率/布局:

-mainView.xml

-threadView.xml

MainActivity.java

protected void firstThread() {

    setContentView(R.layout.threadView);        

    firstThread = new Thread(new Runnable() {
        @Override
        public void run() {
            SystemClock.sleep(7000);

            setContentView(R.layout.threadView);        
        }           
    });
    firstThread.start();          
}


@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    firstThread();
}

谢谢大家!!

【问题讨论】:

标签: java android android-layout layout view


【解决方案1】:

您不能从任何其他线程修改 UI 线程。您可以从其他线程发布消息并在 UI 线程中编写处理程序以更改布局。尝试使用异步任务。你的生活会更简单。

【讨论】:

    【解决方案2】:

    至少你应该发布错误堆栈让每个人都能看到你的问题。假设有问题,我猜是因为你不能在另一个线程中修改 UI。在你的线程中尝试:

            runOnUiThread(new Runnable() {
    
                @Override
                public void run() {
                    setContentView(R.layout.threadView); 
                }
            });
    

    【讨论】:

      【解决方案3】:

      谢谢大家!

      我使用下一个解决方案解决了问题:

      http://inphamousdevelopment.wordpress.com/2010/10/11/using-a-viewswitcher-in-your-android-xml-layouts/

      我试图更改线程内的布局,而不是通过处理程序!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-15
        • 2019-05-29
        • 1970-01-01
        相关资源
        最近更新 更多