首先,请原谅我可怜的英语。
在我的一个应用程序中,我需要添加许多按钮,当按钮数小于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);
}
}
无论如何,谢谢你的帮助。