2012-09-14 196 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的底部。 –