2013-06-25 45 views
0

我的應用程序有一組SQLite表,它有一組問題。用戶可以參加此測試的活動首先加載第一個問題,然後每當他們按下時,它將問答的textView文本設置爲SQLite表的下一行。在Android上的一個活動內動態加載多個佈局

問題是,如果我希望用戶能夠點擊答案並轉到下一個問題,那麼我希望答案在按下上一個問題按鈕時保持突出顯示/檢查 - 這意味着我認爲最好的方法是將所有問題加載到活動中的單獨佈局中,並讓活動一次顯示一個問題。

是否有可能循環並創建一個佈局每次或將殺死內存?

回答

1

由於多種原因,您不希望這樣做。對於一個Activity而言,多次使用layouts並不是一個好主意。我不知道你的layout應該如何看,但你可以動態加載parent and child views這可能是你想要做的,如果你不知道每次問題的數量。

你可以像

TextView question = new TextView(this); 

創建View然後將其添加到layoutaddView()

你可以有,說在一個單獨的文件中LinearLayoutinflate,每次你需要一個新的問題,並相應地在其中設置Views

另一種選擇,如果你知道有多少Views應該在你的layout將是XML創建他們和XML使用visibility財產android:visibility="invisible"然後在Java中它更改爲visible當他們點擊Button

textView.setVisibility(View.VISIBLE); 

很難給出一個例子,不知道你有什麼,但我會建議看着這兩個選項之一

另一個選項,你可能會考慮如果你有大layout爲每個問題/答案或希望它們可重複使用是爲每個問題創建單獨的文件,並使用<include>標記將每個標記包含在主要文件layout中。您也可以使用visibility屬性這樣做,並有單獨的文件。您只是想嘗試避免多次撥打setContentView(),因爲這會將您所有的Views設置爲其默認值,並且可能會變得雜亂,從而導致更多問題。

0

而不是預先加載所有的佈局,你應該在sqlite中存儲答案,並設置當再次加載屏幕時的值。因此,流動會去:

的onCreate - >設置內容視圖

的onResume - >檢查答案存在和SQLite查詢的問題。如果存在答案,請設置該值。

的onPause - >如果答案設置,店裏的SQLite

其實,你可能要保存,當他們點擊下一步按鈕..依次調用,將不過,如果你的onPause然後打開一個新的活動。