Android layout 如何在Android中重新绘制屏幕

Android layout 如何在Android中重新绘制屏幕,android-layout,Android Layout,我想知道如何让屏幕重新绘制当前内容 目前我所做的是:我有一个活动,检查标志是否设置为true或false,如果标志为true,则需要加载一个xml文件作为其布局,如果标志为false,则需要加载另一个。这个代码有效 我遇到的问题是,除非我改变屏幕的方向,也就是翻转手机,否则屏幕不会自动重新绘制。我需要在标志状态改变时重新绘制。我使用onResume()时遇到了这个问题,但问题是布局回到了默认状态,没有保存任何输入或按钮更改,这是在我从一个选项卡切换到下一个选项卡时发生的 因此,我想我要问的是,如

我想知道如何让屏幕重新绘制当前内容

目前我所做的是:我有一个活动,检查标志是否设置为true或false,如果标志为true,则需要加载一个xml文件作为其布局,如果标志为false,则需要加载另一个。这个代码有效

我遇到的问题是,除非我改变屏幕的方向,也就是翻转手机,否则屏幕不会自动重新绘制。我需要在标志状态改变时重新绘制。我使用onResume()时遇到了这个问题,但问题是布局回到了默认状态,没有保存任何输入或按钮更改,这是在我从一个选项卡切换到下一个选项卡时发生的


因此,我想我要问的是,如何在应用程序中切换选项卡时对布局文件进行更改并保持这些更改,这样当我返回到该选项卡时,所有更改仍然存在?

为什么不在后台创建一个AsyncTask,等待您的标志变为真(或假idk),然后onPostExecute可以根据需要修改UI。在选项卡之间切换不应改变您的活动。希望能有帮助

private class WaitMyFlag extends AsyncTask<Void,Void,Void>{
    @Override
protected Void doInBackground(Void... params) {
        while(!youflag){
            try {
                Thread.sleep(100);
            } catch (Exception e){
                Log.e(TAG, "Couldn't sleep !");
            }
        }
    }

    @Override
protected Void onPostExecute(Void params) {
        //UI Modifications
    }
}
私有类WaitMyFlag扩展了AsyncTask{
@凌驾
受保护的Void doInBackground(Void…参数){
而(!youflag){
试一试{
睡眠(100);
}捕获(例外e){
Log.e(标记为“睡不着!”);
}
}
}
@凌驾
受保护的Void onPostExecute(Void参数){
//用户界面修改
}
}