2015-05-04 81 views
2

我正在構建一個基於用戶請求返回Views的圖書館項目。但是我在庫項目中創建的Views不使用我在應用程序中使用的主題。Android主題未在圖書館項目中使用

例如,如果庫項目返回Fragment它有它的EditText,則EditText將不使用,即使該應用程序正在使用它的程序兼容性主題。

下面是我用吹大Views在庫項目的基類的相關部分:

public abstract class AbsInputFieldViewController<T extends AbsInputField> { 

    protected Context getContext(){ 
     return mFragment.getActivity().getApplicationContext(); 
    } 

    protected LayoutInflater getInflater(){ 
     return (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    public abstract View getView(AbsInputField field, Fragment fragment); 
} 

getView()在幾個子類來實現,它使用的LayoutInflatergetInflater()可以填充View來自佈局xml的實例。

回答

3

問題是你得到的LayoutInflatergetSystemService()。如果您希望LayoutInflater使用特定的主題,則必須從使用該主題的Context創建該主題。通常這將是從Activity或從ApplicationContext。試試這個:

LayoutInflater inflater = LayoutInflater.from(context);