LinearLayout
いくつかの要素を含む小さなパネルを表すAbsoluteLayout
を私のメインに追加しようとしていActivity
ます。このコードを使用していますが、アプリがクラッシュします。これは、ビューをメイン レイアウトに追加するパネル クラスのコンストラクターです。同様のコードは、実行時に作成されたボタンを追加するために機能しますが、これには機能しません。
public ButtonSetupPanel(String btnName, int keyCode, View v){
AbsoluteLayout abs = (AbsoluteLayout) v.findViewById(R.id.mainbg);
LinearLayout panel = (LinearLayout) v.findViewById(R.id.btnSetupPanel);
panel.setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT, 1023, 300));
panel.setOnTouchListener(this);
abs.addView(panel);
}
LogCat: (私は StandOut ライブラリを使用しています)
. 10以上
更新:問題は、これLinearLayout
が別の XML ファイルにあるため、他のレイアウト ファイルを膨らませて、定義されたビュー (LinearLayout) を表示する必要があることです。どうやって進める?
Update2:このコードを使用して必要なビューを取得しました
public ButtonSetupPanel(String btnName, int keyCode, View v){
AbsoluteLayout abs = (AbsoluteLayout) v.findViewById(R.id.mainbg);
LinearLayout view = (LinearLayout) LayoutInflater.from(v.getContext()).inflate(R.layout.btnsetup , null);
LinearLayout panel = (LinearLayout) view.findViewById(R.id.btnSetupPanel);
view.removeView(panel);
panel.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
panel.setX(512f);
panel.setY(300f);
panel.setOnTouchListener(this);
abs.addView(panel);
}