有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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);
    }

是这样吗

enter image description here


共 (2) 个答案

  1. # 1 楼答案

    使用arraylist代替数组。还可以将现有数组转换为arraylist,然后向arraylist添加新元素

    您可以一次性将数组数据添加到arraylist,因为已经创建了这样的数组

    List<Integer> temp = Arrays.asList(speciesArr);
    

    要从arraylist获取数据,只需稍加修改即可获得与数组相同的数据

    ArrayList<Integer> s = new ArrayList<Integer>(); 
    s.add(fromMinutes); 
    

    要获取数据,只需使用

    s.get(i);
    
  2. # 2 楼答案

    对于动态添加、删除和替换操作,应该使用ArrayList而不是Array