2017-08-17 9 views
0

次のシナリオ:getChildAt()の後でクラス属性にアクセスできない

私はクラスビューを使用してクラス 'exampleClass'を作成します。クラスには対応するゲッターを持つ'String A'属性があります。

私はこのクラスのインスタンスを作成します。どちらも私に電話してLog.v(LOG_TAG, instance.toString());Log.v(LOG_TAG, instance.getA());という正しい結果を得ることはできません。

このインスタンスをcontainerというViewGroupに追加します。それから私はcontainer.getChildAt(0).toString()を呼び出します。これは私に期待通りに、Log.v(LOG_TAG, instance.toString());で上記と同じ出力ですが、違いはありません。

container.getChildAt(0).getSideA(または他のメンバー)に電話するのは効果がありません。膨張されたビューに属するメソッドだけが使用可能です。

属性やメンバーにアクセスする方法はありますか?このトピックに関するその他の背景情報も感謝します。

答えて

0

getSideAの方法を使用する前に、対象のタイプをcontainer.getChildAt(0)にする。

((TargetClassType) container.getChildAt(0)).getSideA() 
+0

これは面白いです:私はすでにキャスティングについて考えました。最初はそれがうまくいかなかった(Androidスタジオはキャスティングが冗長だとは言ってもアクセスできないと言った)。変数を格納する必要があり、次にそれが機能しました。その情報をあなたのソリューションに追加することができます。 – Reinmarius

関連する問題