2016-08-19 27 views
0

@ViewById註釋在我的DialogFragment中不起作用。視圖不會被DialogFragment中的AndroidAnnotations注入

我做

MyDialogFragment_.builder() .build() .init(someObject, new ClickListener() {...}) .show(getFragmentManager(), "myDialog");

其中init()是用於鏈接返回MyDialogFragment我的自定義方法使用@EFragment(R.layout.mydialogfragment)

我創作的片段。

我沒有覆蓋OnCreateDialog,我也沒有覆蓋onCreateView,我沒有使用AndroidAnnotations的任何@After...批註。

我想在我的init()方法中使用注入的視圖,但它們爲空。

回答

2

就在我完成鍵入問題時,我意識到出了什麼問題。我假設視圖將在build()返回時注入,因此我可以在init()方法中使用它們,但它們不是。修復方法是使用@AfterViews批註註釋另一種方法,並在那裏執行視圖相關的初始化。

0

如何創建我的DialogFragment與AA:

@EFragment(R.layout.my_fragment_layout) public class MyDialogFragment extends DialogFragment { 

    @ViewById TextView myTextView; 
    @ViewById Button myButton; 

    public static MyDialogFragment_ newInstance() { 
    MyDialogFragment_ f = new MyDialogFragment_(); 
    return f; 
    } 

    @AfterViews void init() { 
    // something 
    } 

} 

我如何開始呢?

FragmentTransaction ft = fragmentManager.beginTransaction(); 
DialogFragment newFragment = MyDialogFragment.newInstance(); 
newFragment.show(getSupportFragmentManager(), "dialog");