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が発生しました

4

1 に答える 1

0

サイズを確認してください。サイズが 0 の場合は、空のビューをリストビューに設定します。

 listview.setEmptyView(new View(context));
于 2012-09-14T14:00:26.813 に答える