我有一項活動可以顯示兩種不同的佈局。這兩種佈局都是預先定義的(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