私は次のようなインクルードを持っています:
<include
android:id="@+id/placeHolder"
layout="@layout/test" />
インクルードレイアウトは(test.xml)のようになります。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/outer"
... >
<ImageView
android:id="@+id/inner"
... />
</FrameLayout>
実行時にid="inner"の内部ImageViewが見つからないようです。
ImageView iv = (ImageView)findViewById(R.id.inner);
if (iv == null) {
Log.e(TAG, "Not found!");
}
私はそれを見つけることができるべきですか?「include」を使用しているため、通常のfindViewByIdメソッドは機能しないようです。
- - - - - アップデート - - - - - - - -
したがって、インクルードに割り当てられたIDを見つけることができます。
View view = findViewById(R.id.placeHolder); // ok
しかし、次のようなIDでその子を見つけることができません。
view.findViewById(R.id.outer); // nope
view.findViewById(R.id.inner); // nope
次のように直接検索してみると、オリジナルと同じです。
findViewById(R.id.outer); // nope
findViewById(R.id.inner); // nope
IDは、実行時に要素から削除されるだけですか?
ありがとう