【发布时间】:2016-01-25 06:08:02
【问题描述】:
我有一个动态显示布局的函数。它显示了为一天创建的事件。它有一个开始时间和结束时间作为参数。出于测试目的,我使用了带有一些值的浮点数组。但是现在我想将开始时间和结束时间值添加到我从另一个活动中获得的这个函数中。我希望它们在数组中动态使用并在函数中使用。
以下是我的功能:
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]);
}
我得到了几分钟的 onActivity 结果,我想在数组和函数中使用它:
@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.array 列表中找到。
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);
}
这样对吗??
【问题讨论】:
-
使用arraylist代替数组。您还可以将现有数组转换为 arraylist,然后将新元素添加到 arraylist
-
Array 是一个静态实例。您不能为其设置新长度。您所能做的就是创建具有新长度的新数组。或者,例如,使用 List。
-
感谢您的回复。我尝试使用这样的数组列表:ArrayList
s = new ArrayList (); s.add(fromMinutes); ArrayList e = new ArrayList (); e.add(toMinutes); ----------------但我不确定如何将数组中的元素用作函数的参数?就像我在上面的函数中使用开始时间和结束时间一样。我也想用它来做进一步的计算。你能告诉我一个代码吗? @Vivek Mishra -
我知道数组列表的选项,但我无法对其进行编码。你能告诉我一个代码吗? @Majestic
-
如果您想在多个方法中使用数组列表,请尝试将数组列表声明为类变量。
标签: java android arrays function dynamic-programming