如何在Android中重绘屏幕

时间:2011-11-22 10:23:22

标签: android-layout

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

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

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

所以我想我要问的是如何更改布局文件并在我的应用程序中切换选项卡时保留它们,以便当我返回该选项卡时,所有更改都是还在吗?

1 个答案:

答案 0 :(得分:0)

为什么你不在AsmonTask等待后台让你的旗帜成为真(或假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
    }
}