ルートを探せ
Activityにセットしたレイアウトに対して動的にビュー(グループ)を追加したい。追加するには、Acrivityを生成した際に与えるビューのルート(大抵はLinerLayoutかScrollView等のレイアウトオブジェクト)への参照が必要だ。
ルートのセットは明示的に行うため、これを記憶しておけば良いだけなのだが、
protected ViewGroup contentRoot; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View view = this.getLayoutInflater().inflate(R.layout.main, null); this.contentRoot = ( view instanceof ViewGroup ) ? (ViewGroup)view : null; this.setContentView(view); : }
これでは記憶するのはActivityでしか行えない。
setContentViewメソッドがあるので、getContentViewを期待したのだがありゃしないし。
Activityのサブクラスを作れば良いのだろうが、それをしないで、後々Activityさえ知っていればビュー(グループ)のルートを知ることはできないのだろうか。