我正在我的第一个Android应用程序,并遇到了一些麻烦。我试图开始一个新的活动,它接收来自上一个活动的ArrayList,并为列表中的每个项目创建一个按钮。我试着看过很多其他堆栈溢出帖子,但他们都没有帮助解决我的问题。Android应用程序动态创建按钮出现在同一个地方
我已经尝试了许多不同的策略,我的代码如下目前:
public class VideoMenu extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_menu);
Bundle b = getIntent().getExtras();
ArrayList<String> videos = b.getStringArrayList("videos");
setContentView(R.layout.activity_video_menu);
for(int i=0;i<videos.size();i++){
Button myButton = new Button(this);
myButton.setText(videos.get(i));
myButton.setId(i);
RelativeLayout ll = (RelativeLayout)findViewById(R.id.videos);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if (i != 0) {
lp.addRule(RelativeLayout.END_OF, i - 1);
}
myButton.setLayoutParams(lp);
ll.addView(myButton,lp);
}
}
}
和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:id="@+id/videos"
android:layout_alignParentBottom="true"
android:layout_alignWithParentIfMissing="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
这编译就好了,但所有的按钮都显示在另一个上面。如果你可以包括为什么任何代码建议可能工作的原因,我将不胜感激。我想详细了解此:)
编辑:固定错字
你可以在android中使用ListView解决你的问题,你可以在google上找到很多教程,例如http://www.vogella.com/tutorials/AndroidListView/article.html。它可以轻松处理滚动和onClick事件。 – Swapnil