以前は、カスタム テーブル レイアウトを作成するたびに、Java で子ビューを作成し、tableRow.addView(childView)
. 現在、すべての子ビューを手動で作成する代わりに、それらを xml で作成し、それらを tableRow にインフレートしています。
たとえば、私はそうします
RelativeLayout gameView = (RelativeLayout) mInflater.inflate(R.layout.my_game,
new RelativeLayout(context));
… //edits to gameView
gameView.requestLayout();
((ViewGroup) gameView.getParent()).removeAllViews();
tableRow.addView(gameView);
addView(tableRow);
ただし、私の問題は次のとおりです。行を省略すると、ビューに既に親があり、最初に子の親を((ViewGroup) gameView.getParent()).removeAllViews()
呼び出す必要があるというエラーが表示されます。revomeView
と呼ばれるメソッドが見つかりません。removeView
使用しますremoveAllViews
。しかし、そうすると、親で NullPointerException が発生します。
質問: ビューを拡張してテーブル レイアウトに追加するにはどうすればよいですか?