我正在使用我的第一个Android应用程序并遇到了一些麻烦。我尝试启动一个新活动,该活动从前一个活动中获取一个ArrayList,并为列表中的每个项目创建一个按钮。我已经尝试过查看许多其他堆栈溢出帖子,但没有一个能帮我解决问题。
我尝试了很多不同的策略,目前我的代码如下:
Future
}
和XML代码:
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);
}
}
编译得很好,但所有按钮都显示在另一个上面。如果您可以包含为什么任何代码建议可能有效的原因,我将不胜感激。我想了解更多相关信息:)
编辑:修正错误
答案 0 :(得分:0)
原因是您要将按钮添加到var mergeRecord = record.load({
type: 'custrecord_merge_vendor',
id: '12',
isDynamic: true
});
。 RelativeLayout
基本上将所有视图添加到视图中指定的任何位置。你没有真正指定,所以他们都是相互重叠的。
要解决此问题,请将RelativeLayout
改为RelativeLayout
,LinearLayout
或orientation
为horizontal
。 vertical
会在水平线上并排添加视图,horizontal
会将它们添加到垂直线中。