2012-06-06 50 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