0

我有一个calling方法的问题。我创建了一个button,如果我点击它,它会启动onClick(). 此方法正在从 调用其他方法up-class。在这些方法中,我将layoutby设置setContentView(R.layout...);为两种不同的布局。目前,我的代码非常快速地将布局更改为第二个布局。如果第一种方法准备好,我该如何处理它,第二个布局只会设置?我知道它一定是带有 的东西asynch-tasks,但我需要帮助来处理它。

我的代码:

public void do(int a) {
 method1();
 method2();
 }

这两种方法都来自超类。Method1 应该将ContentView(r.layout.1) 和method2 设置为r.layout.2。

4

2 回答 2

0

如果您想在第一种方法和第二种方法之间有一段时间,您可以使用如下处理程序在延迟一段时间后调用第二种方法

public void do(int a) {
 method1();
new Handler().postDelayed(new Runnable() 
{

        @Override
        public void run() 
                {
            // TODO Auto-generated method stub
            try
            {
                method2();
            }
            catch(Exception e)
            {

                           Log.d("Exception",""+e.getMessage());
            }
        }
        }, 500);

 }
于 2014-03-22T13:44:45.443 回答
0

您可以执行 AsyncTask:

public class BasicAsyncTask extends AsyncTask{

    @Override
    protected Object doInBackground(Object[] params) { // this will start when .execute() is called
        method1();
        return null;
    }

    @Override
    protected void onPostExecute(Object o) {   // this will be executed when doInbackGround finishes
        super.onPostExecute(o);
        method2();
    }
}

启动异步任务:

BasicAsyncTask basicAsyncTask = new BasicAsyncTask();
basicAsyncTask.execute();
于 2016-07-19T07:45:29.007 回答