按钮点击动态添加android中的控件

时间:2012-03-02 11:03:17

标签: android controls

这就是我在编码中所做的,我想在按钮点击上创建控件。用户单击的次数我想在相同的时间内添加控件。  我必须在相对布局中添加这些控件。我已经在xml布局中创建了一组控件已经在其中...并且如果用户想要编辑,则希望使其适用于更多控件。

    View DynamicView= new View(this);
    DynamicView.setId(123);                
    DynamicView.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT))

以下是XML布局代码。

<View
           android:layout_width="match_parent"
           android:layout_height="1dp"
           android:background="@android:color/black" />

问题: - 1)不想以这种方式给ids :(

  DynamicView.setId(123);

想要分配这样的ID,因为我们可以在xml布局中分配

android:id="@+id/spnrIngredients1"

2)如何为编码中的相对布局赋予值,例如

android:layout_toRightOf="@id/tvIngredientsName"
android:layout_toLeftOf="@id/tvIngredientsName"
android:layout_below="@id/tvIngredientsName"
android:layout_above="@id/tvIngredientsName"

3)如何为背景颜色赋值。 它不接受十六进制代码或其他东西..它要求什么类型的int值..?

1 个答案:

答案 0 :(得分:0)

2)使用LayoutParams设置将视图置于RelativeLayout中的规则:

Button b = new Button(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT,
    RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.BELOW, viewID);
b.setLayoutParams(lp);
b.setText("Added at Bottom");
mParent.addView(b, lp);

上面的代码会将Button放在ID为viewID的视图旁边。

3)setBackgroundColor()(我认为这是您正在使用的方法)需要一个代表Color的int,您可以通过以下方式在该方法中设置它:

Color.RED 
Color.parse(Color.parseColor("#0077cc"))
android.R.color.black

1)您可以在values/ids.xml文件中设置您的ID,然后将它们设置为您的视图,然后通过这些ID引用视图:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="myfirstid" />    
</resources>

现在您可以在代码中使用id R.id.myfirstid(我不知道这是否是您想要的)。 注意: 我不知道这是否推荐。