如何在android平台中使用layout.addview()添加多个按钮?

时间:2014-02-19 11:53:10

标签: android android-layout

首先,请原谅我可怜的英语。

在我的一个应用程序中,我需要添加许多按钮,当按钮数小于60时,它工作得很好,但是当有多于60的按钮时,没有显示任何内容。我试图使用线程,但没有运气。

一些代码:

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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=".MainActivity" >

<TextView
    android:id="@+id/tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

<ScrollView
    android:layout_below="@id/tv"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:scrollbars="none" >

    <LinearLayout
        android:id="@+id/message"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:alpha="0.7"
        android:gravity="center"
        android:orientation="vertical" >

        <Button
            android:id="@+id/newnote"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:onClick="yc"
            android:textSize="18sp" />
    </LinearLayout>
</ScrollView>

MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    for (int i = 0; i < 60; i++) {

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        int screenWidth = dm.widthPixels;
        Button tv = new Button(this);
        tv.setLayoutParams(new LinearLayout.LayoutParams(
                7 * screenWidth / 8, LinearLayout.LayoutParams.WRAP_CONTENT));

        tv.setId(i);
        tv.setTextSize(18);
        tv.setText("" + i);
        tv.setOnLongClickListener(new OnLongClickListener() {

            public boolean onLongClick(View v) {
                return false;

            }

        });
        TextView textview = new TextView(this);
        textview.setHeight(8);
        final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.message);
        linearLayout.addView(tv);
        linearLayout.addView(textview);
    }

}

无论如何,谢谢你的帮助。

0 个答案:

没有答案