我有一项活动可以显示两种不同的布局。这两种布局都是预先定义的(XML)。基本上,如果满足条件,则应该显示布局A.如果条件失败,则应显示布局B.一个活动,两个视图。如何以及在哪里夸大第二个视图?
布局A是一个简单的线性布局 - 这是我的主要“形式”,可以这么说。 布局B是一个简单的相对布局 - 它是一个占位符,直到可以下载一些数据。一旦数据被下载(并发送一个通知),然后我想删除布局B和显示布局A.
我试过呼吁布局B的invalidate()
方法在我Activity
但没有按的onResume()
方法没有工作。 (1)哪里“正确”切换布局,以及(2)我应该如何去显示它。我不知道我应该采取什么方法。我假设我需要在满足条件的情况下对布局A进行充气,但我对此并不十分确定。
编辑: 剪断我onCreate()
方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutA); // will happen 99% of the time
...
if (!dbHelper.tableIsPopulated()) {
setContentView(R.layout.layoutB); // show placeholder bc no data exists
getData();
}
}
数据需要下载多长时间,为什么不只是使用带'ProgressDialog'的'AyncTask'? – codeMagic 2013-03-07 00:27:16
这是一小部分数据,通常在不到20秒内下载(即使在Sprint 3G上)。我正在使用'AsyncTask'来获取数据。我真的不考虑从AsyncTask创建'ProgressDialog',因为它在外部Java类(即不是公共内部类)中。 – acedanger 2013-03-07 00:35:12
原来是这样,但是之后我需要从应用程序的另一部分调用它,所以我将它作为一个外部类。 – acedanger 2013-03-07 00:36:44