[解決済み】findViewByIDがnullを返す。
質問
まず最初に:はい、このトピックに関する他のスレッドもすべて読みました。このサイトのものだけでなく...。(ほら、ちょっとイライラしてるので)
そのほとんどが
android:id
ではなく、単に
id
をXMLファイルに追加してください。した。
他の人から聞いた話ですが
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は正常に動作します。
ということは、もしかしたら
Activity.findViewById
と
View.findViewById
の違いがあります。そこで、カスタムビューのコンストラクタに渡されたコンテキストをローカルに保存して試してみました。
...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
を返し、さらに
null
.
そして、カスタムビューを拡張するように変更しました。
ViewGroup
代わりに
View
を変更し
location_layout.xml
を使わせるようにしました。
TextView
がカスタムビューの直接の子であるようにします。
View.findViewById
は想定通りに動作するはずです。驚いたことに、それは何の解決にもならなかったのです。
では、一体何が間違っているのでしょうか?
何かコメントがあれば、よろしくお願いします。
解決方法は?
<ブロッククオートを返した場合、NULL
呼び出すタイミングが早すぎるためと思われます。次の時刻まで待ちます。
onFinishInflate()
.
以下はサンプルプロジェクトです。
カスタム
View
がその内容にアクセスします。
関連
-
[解決済み】Edit Textのandroid:ems属性とは何ですか?[重複しています]
-
[解決済み】OnFragmentInteractionListenerを実装する方法
-
[解決済み】インストールエラー。インストールエラー:install_failed_older_sdk
-
[解決済み】java.lang.RuntimeException: アクティビティを開始できない ComponentInfo
-
[解決済み] 現在のテーマでスタイル 'coordinatorLayoutStyle' を見つけることができませんでした。
-
[解決済み】Android Studioの初回起動。Android SDKアドオンリストにアクセスできない
-
[解決済み】新しいAVDを作成すると、CPU/ABIフィールドに「システムイメージがインストールされていません」と表示される。
-
[解決済み】findViewByIDがnullを返す。
-
[解決済み] サポートされていないメソッドです。BaseConfig.getApplicationIdSuffix()がサポートされていません。
-
[解決済み] Android Studioで「URIが登録されていません」と報告されるのはなぜですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】com.android.ide.common.process.ProcessException: aaptの実行に失敗しました! どうすればいいですか?
-
[解決済み】コンテンツには、id属性が「android.R.id.list」であるListViewが必要です。
-
[解決済み】アンドロイドクロームブラウザのモバイルウェブアプリケーションのメニューでHTMLユニコード ☰が検出されない。
-
[解決済み】Dalvikとdalvik-cacheとは何ですか?
-
[解決済み】新しいAVDを作成すると、CPU/ABIフィールドに「システムイメージがインストールされていません」と表示される。
-
[解決済み] [Solved] java.lang.RuntimeException: アクティビティーのインスタンス化ができません ComponentInfo
-
[解決済み】Couldn't load memtrack module Logcat Error
-
[解決済み] コンパイルした.apkを端末にインストールしようとするとINSTALL_FAILED_UPDATE_INCOMPATIBLEが表示される
-
[解決済み] Androidでイメージビューの背景を透明に設定する
-
[解決済み] APKのインストール中にDELETE_FAILED_INTERNAL_ERRORエラーが発生する。