2012-09-14 193 views
0

我需要實現這樣的事情。我得到一個項目列表。當用戶向下滑動列表時,應滑動顯示列表中的空項目,並應下載另一組項目。我怎樣才能實現這個?我有一個ArrayAdapter類:將空項添加到列表視圖

public class OrderAdapter extends ArrayAdapter<Order>{ 


    Context context; 
    int layoutResourceId;  
    List<Order> orders = null; 

    public OrderAdapter(Context context, int layoutResourceId,List<Order> orders) { 
     super(context, layoutResourceId, orders); 
     this.layoutResourceId = layoutResourceId; 
     this.context = context; 
     this.orders = orders; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View row = convertView; 
     OrderHolder holder = null; 

     if(row == null) 
     { 
      Log.i("I'm in OrderAdapter",Integer.toString(layoutResourceId)); 


      LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
      row = inflater.inflate(R.layout.dash_alt_item, parent, false); 

      holder = new OrderHolder(); 
      holder.orderId = (TextView)row.findViewById(R.id.altOrderId); 
      holder.orderTitle = (TextView)row.findViewById(R.id.altOrderTitle); 
      holder.orderStatus = (TextView)row.findViewById(R.id.altOrderStatus); 
      holder.orderPrice = (TextView)row.findViewById(R.id.altOrderPrice); 

      row.setTag(holder); 
     } 
     else 
     { 
      holder = (OrderHolder)row.getTag(); 
     } 

     Order order = orders.get(position); 
     Log.i("id",Integer.toString(order.getOrderid())); 
     holder.orderId.setText(Integer.toString(order.getOrderid())); 
     holder.orderTitle.setText(order.getTitle()); 
     holder.orderStatus.setText(order.getProcess_status().getProccessStatusTitle()); 
     holder.orderPrice.setText(Float.toString(order.getPrice())); 


     return row; 
    } 

    static class OrderHolder 
    { 
     TextView orderId; 
     TextView orderTitle; 
     TextView orderStatus; 
     TextView orderPrice; 
    } 
} 

而且這是我下載的項目:

private class DownloadTask extends AsyncTask<String, Void, List<Order> > { 
      protected List<Order> doInBackground(String... args) { 

      try { 
       DashboardActivityAlt.this.getOrderList(Integer.toString(DashboardActivityAlt.page), Integer.toString(DashboardActivityAlt.perpage)); 


      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 


       return forPrint; 

      } 

      protected void onPostExecute(List<Order> forPrint) { 


       DashboardActivityAlt.this.listView1 = (ListView)findViewById(R.id.altOrderslist); 
       OrderAdapter adapter = new OrderAdapter(DashboardActivityAlt.this, R.layout.dash_alt_item, forPrint); 

       listView1.setAdapter(adapter); 

       if (DashboardActivityAlt.this.pd != null) { 

        DashboardActivityAlt.this.pd.dismiss(); 
       } 

      } 
     } 

我嘗試添加Order類的空項目,但得到的NullPointerException異常

回答

0

檢查的尺寸。如果大小爲0,則將空視圖設置爲列表視圖。

listview.setEmptyView(new View(context)); 
+0

我試過了,但是空的項目並沒有添加到listView的底部。 –