0

我有一個頂部有EditText的活動,裏面有一個帶有LinearLayout的ScrollView。如何通過Android中的方向更改保持動態視圖的重點?

LinearLayout在onCreate方法中填充一組動態視圖,該視圖基於與啓動Intent一起傳遞的對象。這通常是一組EditTexts。

結果是EditText的列表,每個EditText對應不同的數據(並且被編輯的數據集是相當可變的,所以列表需要像這樣動態創建)。

問題是,當其中一個視圖具有焦點並且方向更改(例如用戶將鍵盤翻轉爲鍵入)時,焦點將捕捉到活動最頂部的EditText。這肯定是不受歡迎的行爲,因爲用戶在打翻鍵盤時不打算輸入頂部的EditText。

我該如何動態創建像這樣的視圖列表並且沒有這種不需要的焦點更改行爲?

回答

0

如果發生方向更改,則調用onDestroy(),並且將使用onCreate()再次創建該活動。這就是爲什麼焦點在它找到的第一個EditText上被捕獲的原因。

你可能想看看這個:Handling Runtime changes

具體地說,本主題:Retain an object during configuration change

+0

是的,我瞭解生命週期的基礎知識。但是如果沒有我的動態視圖,焦點會自動保留在活動中。我試圖理解爲什麼這種行爲不適用於我的動態視圖以及如何模仿它。 – CodeFusionMobile 2010-11-09 04:21:16

0

原來我需要一個獨特的和一致的ID分配給我的每一個動態EditTexts的。

活動無法正常保持焦點的原因是無法重新定位視圖,因爲它沒有標識。

相關問題