Dilip Kumar Chaudhary
Dilip Kumar Chaudhary

Reputation: 87

How to display ListView in table form in android

I want to display a ListView in table format.

The ListView should have rows and columns like a excel sheet.

Can anyone please suggest how to implement this?

Upvotes: 4

Views: 3280

Answers (2)

Prashant Mishra
Prashant Mishra

Reputation: 627

    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;

    }
}

Upvotes: 1

ngesh
ngesh

Reputation: 13501

Create a Custom ListView and provide the required xml view (Which will be your TableRow).

Upvotes: 0

Related Questions