2015-11-10 48 views
0

如何將項目添加到列表適配器,但是每次迭代n時,它都會添加到不同的列表和不同的適配器,謝謝!Dynamic將項目添加到不同列表和不同適配器的列表

//我的第一個代碼

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 ;//???????? 
} 

我只是想,如果這是可能的,但如果沒有,我會以我知道的另一種方式做到這一點,打開任何建議,再次感謝。

回答

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 FO使用R此)
  4. 訪問它後來從使用key /動態 '變量名'
Map<Integer, ArrayAdapter<String>> map = new HashMap<Integer, ArrayAdapter<String>>(); 

for(int i = 0; i < 10; i++) 
{ 
    map.put(i, yourAdapter); 
} 
+0

感謝的人的map ..得到這個。 @Smittey – JMZ