如何在android中以表格形式显示ListView

时间:2012-03-28 09:06:38

标签: android listview

我想以表格格式显示ListView

ListView应该有像Excel工作表一样的行和列。

有人可以建议如何实施吗?

2 个答案:

答案 0 :(得分:1)

    class CustomAdapterCoupons extends BaseAdapter {
    /* Variable Declaration */
    private Context context;

    private List<CouponBean> list;

    private CouponBean entry;
    public com.pocketJini.util.ImageLoader imageLoader;
    private LayoutInflater inflater;

    public CustomAdapterCoupons(Context context, List<CouponBean> list) {
        this.context = context;
        this.list = list;
        inflater = (LayoutInflater) CouponsActivity.this
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        imageLoader = new com.pocketJini.util.ImageLoader(context);
    }

    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return list.get(position);
    }

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public class ViewHolder {
        public TextView couponName, couponCode, usageDescription,
                expirationDate;
        public ImageView couponImage;

    }

    public View getView(final int position, View convertView,
            ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder = null;

        entry = list.get(position);

        if (convertView == null) {

            convertView = inflater.inflate(R.layout.coupons_list_layout,
                    null);

            holder = new ViewHolder();

            holder.couponName = (TextView) convertView
                    .findViewById(R.id.CouponListCouponName);
            holder.couponCode = (TextView) convertView
                    .findViewById(R.id.CouponListCouponCode);
            holder.expirationDate = (TextView) convertView
                    .findViewById(R.id.CouponListDetailDate);
            holder.usageDescription = (TextView) convertView
                    .findViewById(R.id.CouponListUsageDescription);
            holder.couponImage = (ImageView) convertView
                    .findViewById(R.id.CouponListLeftImage);

            convertView.setTag(holder);
            // Set the display text
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.couponName.setText(entry.getCouponName());
        holder.expirationDate.setText(context
                .getString(R.string.Coupon_Expiration_Date)
                + "\n"
                + entry.getExpirationDate());
        holder.usageDescription.setText(entry.getUsageDescription());
        holder.couponCode.setText(entry.getCouponCode());

        holder.couponImage.setTag(Data.URL_BASE_2 + entry.getCouponImage());
        imageLoader.DisplayImage(Data.URL_BASE_2 + entry.getCouponImage(),
                (Activity) context, holder.couponImage);
        Log.v(Data.LOG3, "image" + entry.getCouponImage());

        final Button savedMyCoupons = (Button) convertView
                .findViewById(R.id.CouponListAddtoMyCouponButton);
        if (entry.getSavedMyCoupons().equalsIgnoreCase("N")) {
            savedMyCoupons.setText(context
                    .getString(R.string.Add_to_myCoupons));
            savedMyCoupons.setBackgroundResource(R.drawable.done_btn);
            savedMyCoupons.setTag(entry.getCouponId().toString());
            savedMyCoupons.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    createProgressDialog();

                    new Loader()
                            .execute(savedMyCoupons.getTag().toString());
                }
            });

        } else if (entry.getSavedMyCoupons().equalsIgnoreCase("Y")) {
            savedMyCoupons.setText(context
                    .getString(R.string.Already_Added_to_my_coupons));
            savedMyCoupons.setBackgroundColor(Color.WHITE);
            savedMyCoupons.setTextColor(Color.BLACK);

        }

        // display the view corresponding to data at specified position
        return convertView;

    }
}

答案 1 :(得分:0)

创建一个Custom ListView并提供所需的xml视图(这将是您的TableRow)。