在活動中,我添加了一個水平滾動視圖。這包含一個「添加新的設置」按鈕和以前添加的所有設置作爲按鈕。這些設置保存在SQLLite數據庫中。Android:向滾動視圖添加按鈕沒有合適的大小
在我的應用程序的開始我加載數據庫中的所有集。對於每個集合,我在滾動視圖中添加一個自己的按鈕。
顯示所有按鈕,但動態添加的按鈕沒有合適的大小。它們應該具有與「添加新設置」按鈕相同的高度和寬度。
如何將第一個按鈕的尺寸複製到其他按鈕?
這裏我的XML:
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<LinearLayout
android:id="@+id/innerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_NewSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:height="100dp"
android:onClick="OnExitClick"
android:text="@string/New_Set"
android:width="100dp" />
</LinearLayout>
</HorizontalScrollView>
這裏我的java代碼:
db.open();
Cursor allSets = db.getAllSets();
if (allSets.moveToFirst())
{
Button bDummy = (Button) findViewById(R.id.btn_NewSet);
LinearLayout innerLayout = (LinearLayout) findViewById(R.id.innerLayout);
do
{
Button b1 = new Button(this);
b1.setHeight(bDummy.getHeight());
b1.setWidth(bDummy.getWidth());
b1.setText(allSets.getString(1));
b1.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
innerLayout.addView(b1);
}while (allSets.moveToNext());
}
db.close();
非常感謝您的回答快,但仍然有一點「問題」。 我已將我的代碼更改爲: 'b1.setLayoutParams(new LinearLayout.LayoutParams(bDummy.getWidth(),bDummy.getHeight()));' 每次嘗試訪問按鈕的寬度和高度時,/btn_NewSet「爲」0「。此代碼首先位於「onCreate」中,但即使位於「onPostResume」中,第一個按鈕的尺寸也是「0」。 – Tagamoga 2013-03-20 16:29:49