2017-12-15 12 views
0

デザインライブラリからTextInputLayoutに拡張されたカスタムレイアウトをテストしようとしています。テストを実行すると、エラーが発生します。デザインライブラリのレイアウトを拡張するカスタムレイアウトのアンドロイドテストを書く

java.lang.IllegalArgumentException:デザインライブラリでTheme.AppCompatテーマ(または子孫)を使用する必要があります。 android.support.design.widget.TextInputLayoutでandroid.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:33) で。(TextInputLayout.java:192) android.support.design.widget.TextInputLayoutでandroid.support.design.widget.TextInputLayoutで。(TextInputLayout.java:185) 。(TextInputLayout.java:181)

私はカスタムレイアウトをインスタンス化するInstrumentationRegistry.getTargetContext()によって提供されるコンテキストを使用しています。これをどうやって解決するのですか?

+0

ここでの回答はお役に立ちますか? https://stackoverflow.com/questions/21814825/you-need-to-use-a-theme-appcompat-theme-or-descendant-with-this-active – Micer

答えて

0

コンテキストオブジェクトのCallオブジェクトを呼び出す前に、カスタムレイアウトをインスタンス化する前にAppCompatテーマを提供するコンテキストオブジェクトを呼び出します(下のテストメソッドの例を参照)。

@Test 
public void testCustomLayout() { 
    Context context = InstrumentationRegistry.getContext(); 
    context.setTheme(R.style.Theme_AppCompat); 
    CustomLayout textInputEditText = new CustomLayout(context); 
    assertNotNull(textInputEditText); 
} 
関連する問題