动态添加唯一按钮

时间:2014-05-26 19:45:16

标签: java android xml android-layout

这就是我现在所拥有的:

image

当我点击添加课程时,我想要另一个按钮直接显示在“添加课程”上方。按钮。单击此新创建的按钮将切换到显示该类的所有分配的活动(新按钮)。我想我知道如何做到这一点,但只是最基本的形式。

我想我确实有三件事我不确定:

1)如何通过java在xml文件中的特定位置添加按钮?

2)如何添加带有唯一标识符的按钮?

3)如何点击新创建的按钮以打开一个新活动,该活动仅显示该按钮的分配?

这是我的xml布局目前的样子:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#7BEDFC" >

<ScrollView
     android:layout_width="fill_parent"
     android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/mLlayoutBottomButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp" >
        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textColor="#FFFFFF"
            android:text="Classes"
            android:textStyle="bold"
            android:textAppearance="?android:attr/textAppearanceLarge" />
        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@drawable/roundedcorners"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="10dp"
            android:textStyle="bold"
            android:drawableRight="@drawable/rightarrow"
            android:gravity="left|center_vertical"
            android:text=" Math" />
        <Button
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="@drawable/roundedcorners"
            android:textStyle="bold"
            android:padding="10dp"
            android:text="Add a Class" />                               
    </LinearLayout>

 </ScrollView>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

你想添加我猜想的linearLayout按钮(id mLlayoutBottomButtons)。在您的活动中,您可以这样做:

LinearLayout buttonsLayout = (LinearLayout) findViewById(R.id.mLlayoutBottomButtons);

您将动态创建按钮,可以给它一个id(button.setId(int id)),但这不是必需的。只需像这样创建和添加

Button newButton = new Button(this);
newButton.setText("New button");
buttonsLayout.addView(newButton, parentView.getChildCount() - 2); //see Edit at end of post

现在我们创建了按钮并将其添加到布局中。最后一步,您只需将OnClickListener设置为此按钮即可。在onClick方法中,您可以使用intent启动活动并添加Extras,以确定应在下一个Acitivty中显示哪个分配。

Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);
intent.putExtra("assignmentType", "theNewButtonsAssignments");
startActivity(intent);

在新的Activity中调用getIntent()。getStringExtra(“assignmentType”)来检索应该显示哪个赋值。

编辑: 您可以使用addView(View child,int index)将其插入linearLayout内的特定位置。