まず第一に、はい、このトピックに関する他のすべてのスレッドを読みました。そして、このサイトからのものだけではありません...
それらのほとんどは、XMLファイルandroid:id
だけid
でなく、使用するためのアドバイスが付属しています。やった。
他の人から、それがとView.findViewById
は異なる働きをすることを学びましたActivity.findViewById
。私もそれを扱った。
私ではlocation_layout.xml
、私は使用します:
<FrameLayout .... >
<some.package.MyCustomView ... />
<LinearLayout ... >
<TextView ...
android:id="@+id/txtLat" />
...
</LinearLayout>
</FrameLayout>
私の活動で私はします:
...
setContentView( R.layout.location_layout );
そして私のカスタムビュークラスで:
...
TextView tv = (TextView) findViewById( R.id.txtLat );
を返しますnull
。これを行うと、私のアクティビティは正常に動作します。おそらくそれはActivity.findViewById
とのView.findViewById
違いによるものでしょう。そのため、カスタムビューコンストラクターに渡されたコンテキストをローカルに保存して試してみました。
...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
これも帰ってきたnull
。
その後、私は拡張するために私のカスタムビューを変更するViewGroup
代わりにView
、変更location_layout.xml
できるようにするTextView
ように、私のカスタムビューの直接の子であるView.findViewById
はずのように動作するはずです。驚き:それは何も解決しませんでした。
それで、私は一体何を間違っているのですか?
コメントをいただければ幸いです。