java如何在整数数组中动态添加元素?
我有一个动态显示布局的函数。它显示为一天创建的事件。它有一个开始时间和结束时间作为参数。出于测试目的,我使用了一个带有一些值的浮点数组。但是现在我想将开始时间和结束时间值添加到这个函数中,这是我从另一个活动中获得的。我希望它们在数组中动态使用,并在函数中使用
以下是我的职责:
private void createEvent(LayoutInflater inflater, ViewGroup dayplanView,float startTime, float endTime) {
View eventView = inflater.inflate(R.layout.event_view, dayplanView, false);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) eventView.getLayoutParams();
float margin = (startTime * 60);
float distance = (endTime - startTime);
float height = (distance * 60);
int result = ((int)margin);
int result1 = ((int)height);
layoutParams.topMargin = dpToPixels(result+10);
layoutParams.height = dpToPixels(result1);
eventView.setLayoutParams(layoutParams);
dayplanView.addView(eventView);
}
我称之为onCreate视图:
ViewGroup dayplanView = (ViewGroup)view.findViewById(R.id.hoursRelativeLayout);
float[] startTimes = new float[] {2.5f,8f,4f,11f,5f,8.5f,12.3f,15.3f,21f,1f};
float[] endTimes = new float[] {3f,9f,7f,12.5f,7.5f,11f,1.5f,16f,22f,2f};
for(int i = 0; i < s.size(); i++) {
createEvent(inflater, dayplanView, startTimes[i], endTimes[i]);
}
我得到了从分钟到分钟的活动结果,我想在数组和函数中使用它:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if(requestCode==1) {
fromMinutes = data.getIntExtra("fromMinute",0);
toMinutes = data.getIntExtra("toMinute",0);
}
}
请帮忙
编辑:
ArrayList<Integer> s = new ArrayList<Integer>();
s.add(fromMinutes);
ArrayList<Integer> e = new ArrayList<Integer>();
e.add(toMinutes);
for(int i = 0; i < s.size(); i++) {
createEvent(inflater, dayplanView,s[i], e[i]);
}
我在s[I]上得到错误,因为在java中找到了预期的数组类型。util。数组列表
private void createEvent(LayoutInflater inflater, ViewGroup dayplanView,int fromMinutes, int toMinutes) {
View eventView = inflater.inflate(R.layout.event_view, dayplanView, false);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) eventView.getLayoutParams();
float margin = (fromMinutes * 60);
float distance = (fromMinutes - toMinutes);
float height = (distance * 60);
int result = ((int)margin);
int result1 = ((int)height);
layoutParams.topMargin = dpToPixels(result+10);
layoutParams.height = dpToPixels(result1);
eventView.setLayoutParams(layoutParams);
dayplanView.addView(eventView);
}
是这样吗
# 1 楼答案
使用arraylist代替数组。还可以将现有数组转换为arraylist,然后向arraylist添加新元素
您可以一次性将数组数据添加到arraylist,因为已经创建了这样的数组
要从arraylist获取数据,只需稍加修改即可获得与数组相同的数据
要获取数据,只需使用
# 2 楼答案
对于动态添加、删除和替换操作,应该使用ArrayList而不是Array