29
findViewByIDはnullを返します
まず第一に、はい、このトピックに関する他のすべてのスレッドを読みました。そして、このサイトからのものだけではありません... それらのほとんどは、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はずのように動作するはずです。驚き:それは何も解決しませんでした。 それで、私は一体何を間違っているのですか? コメントをいただければ幸いです。
251
android
android-view