内の各アイテムに対してが作成されるdatabase
呼び出しを使用してレイアウトを作成しました。は必要に応じて作成され、設定方法もわかりましたが、すべてが同じ位置に配置され、最後に作成されたものだけにアクセスできるように互いに重なり合っています。外観を作成するための私のコードは次のようになります。button
database
buttons
layout_width
layout_height
buttons
button
buttons
Button bt = new Button(this);
bt.setText("Button Title");
bt.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
linerLayout.addView(bt);
ボタンを生成した後のアクティビティは次のようになります。
ボタンに使用できる各メソッドを調べましたが、位置を定義するものが見つかりませんでした。私はちょうど次の方法について考えました:
bt.layout(l, t, r, b);
しかし、それをどのように使用するか正確にはわからず、この問題を解決するためのより簡単な方法があるかもしれないと考えました。回避策を知っている人はいますか?!
変更されたコード
「チェンドロン」で説明したようなレイアウトパラメータを設定してみました。xmlファイル内に相対レイアウトがあります:
<RelativeLayout
android:id="@+id/llActOver"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2" >
</RelativeLayout>
生成されたボタンを次のようにフォーマットしました。
Button bt = new Button(context);
bt.setText(c.getString(iDef));
fontClass.setFont(bt);
//RelativeLayout placeholder = new RelativeLayout(context);
RelativeLayout.LayoutParams layoutParam =
new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
if(rowCount < 1){
layoutParam.addRule(RelativeLayout.ALIGN_PARENT_TOP);
rowCount++;
}else{
layoutParam.addRule(RelativeLayout.ALIGN_PARENT_TOP, lastButtonId);
}
lastButtonId = bt.getId();
//placeholder.addView(bt, layoutParam);
linearLayout.addView(bt, layoutParam);
ループの最後にボタンIDを保存して、次のラウンドで最後のボタンIDにアクセスできるようにします。また、コードのコメント部分が示すように、新しいボタンごとに新しい相対レイアウトを作成しようとしましたが、新しいレイアウトがなくても何も起こらず、すべてのボタンが重なっています。