0
我瞭解如何爲片段定義自定義屬性並以XML格式指定其值(如在this answer中)。但我不知道如何做到這一點動態在Activity.onCreate()
創建的片段。我如何提供屬性值,以便片段可以通過的onInflate()
來獲取它們?將自定義屬性值提供給動態創建的Android片段
我瞭解如何爲片段定義自定義屬性並以XML格式指定其值(如在this answer中)。但我不知道如何做到這一點動態在Activity.onCreate()
創建的片段。我如何提供屬性值,以便片段可以通過的onInflate()
來獲取它們?將自定義屬性值提供給動態創建的Android片段
如何提供屬性值
你需要讓你的片段處理參數(參見setArguments()),然後通過任何你需要新創建的片段對象,重寫XML或framgent默認值。
使用下面的代碼:
@Override
public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) {
super.onInflate(activity, attrs, savedInstanceState);
// Your code here to process the attributes
}
嗨馬爾欽。我知道如何做到這一點(以及我目前的解決方法),但使用參數意味着,如果我想要片段工作,如果它的靜態創建在XML或動態,我需要實現屬性值處理兩次。這對我來說並不合適。 –
您可以爲每個處理的屬性創建單獨的setter方法,並將數據從bundle的XML屬性傳遞到要處理的位置,以便您仍然有一個實現。 –
'屬性值處理兩次'使用參數是唯一正確的方式,因爲這會自動處理片段重新生成 –