Android 为什么以编程方式添加按钮的代码不起作用?

Android 为什么以编程方式添加按钮的代码不起作用?,android,Android,我试图通过编程方式将一些按钮添加到相对布局中。我使用了在StackOverflow上看到的一些示例,但由于某些原因我无法理解,我的代码不起作用:我想让我的按钮一个接一个,但它们最终是一个接一个。 这是我的布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:i

我试图通过编程方式将一些按钮添加到相对布局中。我使用了在StackOverflow上看到的一些示例,但由于某些原因我无法理解,我的代码不起作用:我想让我的按钮一个接一个,但它们最终是一个接一个。 这是我的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.android.myApp.MainActivity" >

</RelativeLayout>

签出此代码…希望这会有所帮助

mLayout=(RelativeLayout)findViewById(R.id.mainLayout); RelativeLayout.LayoutParams lprams=新的RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_内容, RelativeLayout.LayoutParams.WRAP_内容)


使用线性布局,而不是相对布局。我可以尝试一下,但我仍然不明白我的代码出了什么问题……问题出在这行
lprams.addRule(RelativeLayout.down,0)更像这样:p.addRule(RelativeLayout.ALIGN_BOTTOM,tv.getId());不,我仍然有同样的问题。你能用不同的ID检查一下第一个按钮“0”吗?Asmita,你发布的新版本可以正常工作。看来问题确实出在价值观上。不知道为什么0和1或1和2不起作用。谢谢!!
    mLayout = (RelativeLayout) findViewById(R.id.mainLayout);
    RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                                                                         RelativeLayout.LayoutParams.WRAP_CONTENT);

    Button btnTag = new Button(this);
    btnTag.setText("Button0");
    btnTag.setId(0);
    btnTag.setOnClickListener(mGlobalOnCLickListener);
    mLayout.addView(btnTag, lprams);
    lprams.addRule(RelativeLayout.BELOW, 0);

    btnTag = new Button(this);
    btnTag.setText("Button2");
    btnTag.setId(1);
    btnTag.setOnClickListener(mGlobalOnCLickListener);
    mLayout.addView(btnTag, lprams);
Button btnTag = new Button(this);
btnTag.setText("Button0");
btnTag.setId(10);
btnTag.setOnClickListener(mGlobalOnCLickListener);
mLayout.addView(btnTag, lprams);


lprams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                         RelativeLayout.LayoutParams.WRAP_CONTENT);

lprams.addRule(RelativeLayout.BELOW, 10);
btnTag = new Button(this);
btnTag.setText("Button2");
btnTag.setId(1);
btnTag.setOnClickListener(mGlobalOnCLickListener);
mLayout.addView(btnTag, lprams);