7

custom を作成すると、クラスのコンストラクターを介して渡さViewれたクラスをキャストする必要がある場合があり、カスタム クラス内で直接inflate などのタスクを作成すると、次のエラーが発生します。ContextActivityViewView

java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity

これは、このエラーをスローする行です:

View headerView = ((Activity) context).getLayoutInflater().inflate(R.layout.fragment_history_list_header, null);

このエラーは、Eclipse がビューを膨張させて XML エディターに表示しようとしたときにのみ発生するようです (実行時では発生しません)。

誰かがそれを修正する方法を知っていますか?

前もって感謝します。

4

1 に答える 1

8

呼び出しを次のように変更します。クラス キャストの例外が発生する理由は、BridgeContext が Activity 型ではないためです。

View headerView = LayoutInflater.from(context).inflate(R.layout.fragment_history_list_header, null);
于 2013-09-30T01:55:34.940 に答える