动态添加项目以列出具有不同列表和不同适配器

时间:2015-11-10 21:35:59

标签: android

如何将项目添加到列表适配器,但每次迭代n时,它都会添加到不同的列表和不同的适配器,谢谢!

//我的第一个代码

int n = 1;
            while (n != 16) {

                Day(n, Fullname);
                n +=1 ;
            }

//将添加到列表和适配器的另一个

 private void Day(int n,String Fullname){
    String Date = "0" + n + "-" + Month + "-" + Year;
    Cursor c = db.GetSpecific(Fullname,Date);
    String allowancecount = "";
    int intallowancecount = 0;
    double totalCom = 0;
    while(c.moveToNext()){
        String serviceprice = c.getString(4);
        String serviceperformedbynumber = c.getString(10);
        allowancecount = c.getString(12);
        intallowancecount = intallowancecount + Integer.parseInt(allowancecount.trim());
        double income = Integer.parseInt(serviceprice.trim())/
                Integer.parseInt(serviceperformedbynumber.trim());
        totalCom = totalCom + income ;
        //here what to do?
        String add ="List" + n + ".add(String.valueOf(" + income  + "));";
        do add;//???????
    }
    //here what to do?
    String Dynamic = "Com" + n + ".setText(String.valueOf(" + totalCom + "))";
    do Dynamic ;//?????????

    String Dynamicadapter = "Lv" + n + ".setAdapter(adapter" + n + ")";
    do Dynamicadapter ;//????????
}

我只是在想这是否可能,但如果没有,我会以我知道的另一种方式做到这一点,对任何建议持开放态度,再次感谢。

1 个答案:

答案 0 :(得分:0)

在Java中无法使用变量名称分配变量。但是,有些东西可以用于这些类型的情况,这些情况允许您几乎执行此操作,但所有内容都在运行时正确创建,而无需动态行为。例如,您可以考虑使用associative array

取自维基百科 - https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(mapping)#Java

  

在Java中,关联数组实现为“地图”;他们是一部分   Java集合框架。自J2SE 5.0和引入   将泛型转换为Java,集合可以指定类型;对于   例如,将字符串映射到字符串的关联数组可能是   指定的

因此,鉴于此,您可以使用Map并重新构建代码以执行以下操作:

  1. 创建适配器对象
  2. 设置其属性(例如setAdapter()
  3. 使用i(或任何您想用作key的内容)将其添加到地图中
  4. 稍后使用map /动态'变量名称'{/ 1>从key访问它
    Map<Integer, ArrayAdapter<String>> map = new HashMap<Integer, ArrayAdapter<String>>();
    
    for(int i = 0; i < 10; i++)
    {
      map.put(i, yourAdapter);
    }