2012-06-06 53 views
0

只有幾個星期到Android,而我有點難住。任何和所有的洞察力非常感謝。訂購可變大小記錄的Arraylist

在我發現的代碼中,作者是對setOrderName和Status的值進行硬編碼。

雖然我會從Web服務中提取這些值,但它在這裏看起來像我需要o1,o2,o3對象,以根據我拉出的記錄數增加。它是否正確?如果是這樣,我將如何實現這一目標。

如果我還在喋喋不休,請隨時索要具體信息。 在此先感謝

private void getOrders(){ 
     try{ 
      m_orders = new ArrayList<Order>(); 
      Order o1 = new Order(); 
      o1.setOrderName("SF services"); 
      o1.setOrderStatus("Pending"); 
      Order o2 = new Order(); 
      o2.setOrderName("SF Advertisement"); 
      o2.setOrderStatus("Completed"); 
      m_orders.add(o1); 
      m_orders.add(o2); 
      Thread.sleep(5000); 
      Log.i("ARRAY", ""+ m_orders.size()); 
     } catch (Exception e) { 
      Log.e("BACKGROUND_PROC", e.getMessage()); 
     } 
     runOnUiThread(returnRes); 
    } 

public class Order { 


private String orderName; 
private String orderStatus; 

public String getOrderName() { 
    return orderName; 
} 
public void setOrderName(String orderName) { 
    this.orderName = orderName; 
} 
public String getOrderStatus() { 
    return orderStatus; 
} 
public void setOrderStatus(String orderStatus) { 
    this.orderStatus = orderStatus; 
} 

}

回答

0

Order變量是沒有必要的。相反的:

 m_orders = new ArrayList<Order>(); 
     Order o1 = new Order(); 
     o1.setOrderName("SF services"); 
     o1.setOrderStatus("Pending"); 
     Order o2 = new Order(); 
     o2.setOrderName("SF Advertisement"); 
     o2.setOrderStatus("Completed"); 
     m_orders.add(o1); 
     m_orders.add(o2); 

你可以寫:

 m_orders = new ArrayList<Order>(); 
     Order o; 

     o = new Order(); 
     o.setOrderName("SF services"); 
     o.setOrderStatus("Pending"); 
     m_orders.add(o); 

     o = new Order(); 
     o.setOrderName("SF Advertisement"); 
     o.setOrderStatus("Completed"); 
     m_orders.add(o); 

注4行創建和添加的順序使用相同的局部變量,o

+0

我真的很緊張在這裏發帖,因爲我有時候感覺有點過頭了。感謝真棒的建議,真的意味着很多! – user1440675