将GridView与ArrayAdapter一起使用时,值无法正确显示

时间:2015-06-16 18:45:06

标签: android gridview

我有一个奇怪的问题。

我实现了GridView和Custom ArrayAdapter。现在我试图检查getView()部分中的两个值。如果它们相同,我将可见性设置为GONE。如果我这样做,价值没有在屏幕上正确显示我只得到Rs。没有数字,但日志显示正确。这可能是什么问题?

相反,如果我使用SetVisibilty Invisibile值正确显示。

为什么会这样?

这是我的getView代码:

 @Override
    public View getView(int position, View convertView, final ViewGroup parent) 
    {

        ViewHolder holder = null;

        if (convertView == null)
        {
            convertView = vi.inflate(R.layout.new_product_gridlist_items, null);

            holder = new ViewHolder();
            holder.productName = (TextView) convertView.findViewById(R.id.item_label);
            holder.image = (ImageView) convertView.findViewById(R.id.item_image);
            holder.oldamount = (TextView) convertView.findViewById(R.id.item_old_amount);
            holder.newamount = (TextView) convertView.findViewById(R.id.item_new_amount);

            convertView.setTag(holder);
        }
        else
        {
            holder = (ViewHolder) convertView.getTag();
        } 

        ProductDetails pd = productList.get(position);
        holder.productName.setText(pd.getName());

        oldValue = pd.getoldprice();
        newValue = pd.getnewprice();

        if (oldValue.equalsIgnoreCase(newValue))
        {
            holder.oldamount.setVisibility(View.GONE);

            newFormatAmount = NumberFormat.getCurrencyInstance(new Locale("en", "IN")).format(Double.valueOf(pd.getnewprice()));

            holder.newamount.setText(newFormatAmount);
        }
        else
        {
            holder.oldamount.setVisibility(View.VISIBLE);

            oldFormatAmount = NumberFormat.getCurrencyInstance(new Locale("en", "IN")).format(Double.valueOf(pd.getoldprice()));
            holder.oldamount.setPaintFlags(holder.oldamount.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
            holder.oldamount.setText(oldFormatAmount);

            newFormatAmount = NumberFormat.getCurrencyInstance(new Locale("en", "IN")).format(Double.valueOf(pd.getnewprice()));
            holder.newamount.setText(newFormatAmount);      
        }
        Picasso.with(getContext().getApplicationContext()).load(pd.getImage()).placeholder(R.drawable.none).error(R.drawable.none).into(holder.image);

        return convertView;
    }

从上面的代码中可以看出,如果oldValue和NewValue相同,则说:140.0

转换为numberFormat后,我得到一个日志为Rs。 140.根据条件我设置oldValue可见,我只得到Rs。而不是卢比。 140(Log is perfect)同样的方法如果我将oldValue设置为隐藏现在我可以根据日志正确打印​​值...

为什么在日志中可以显示该值时,该值无法在屏幕上正确显示?

0 个答案:

没有答案