在listview中添加最后一行

时间:2011-09-29 08:26:52

标签: android

我有一个自定义列表视图我想为它添加一个lat行,当我滚动最后一行时,会计算所有列表的总和一次又一次地添加

if(position==searchResult.size() && searchResult.size()!=1)
         {

                holder.checkImg.setVisibility(ImageView.GONE);
                holder.fvtImg.setVisibility(ImageView.GONE);
                holder.type.setVisibility(TextView.GONE);
                holder.name.setVisibility(TextView.GONE);
                holder.offer_price.setVisibility(TextView.GONE);
                holder.real_price.setVisibility(TextView.GONE);

                holder.total.setVisibility(TextView.VISIBLE);
                holder.total_price.setVisibility(TextView.VISIBLE);

                //DecimalFormat df = new DecimalFormat("0.00");  
                 //holder.txt_distance.setText(df.format(mData.get(position).get("distance")).toString()+"...");

                DecimalFormat twoDForm = new DecimalFormat("0.00");
                String totalPrice = (twoDForm.format(mTotalPrice)+"").replace('.',',');

                holder.total.setText("Total");
                holder.total_price.setText("Kr. "+totalPrice);
         }
         else
         {
             holder.total.setVisibility(TextView.GONE);
                holder.total_price.setVisibility(TextView.GONE);
                     if(isEdit){
                         /*LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                           lp.leftMargin=30;
                           holder.fvtImg.setLayoutParams(lp);*/
                        /* TranslateAnimation anim = new TranslateAnimation(0,35,0,0);
                         holder.fvtImg.setAnimation(anim);
                         anim.setFillAfter(true);*/
                            holder.fvtImg.setVisibility(ImageView.GONE);
                            holder.name.setPadding(10,0, 0, 0);
                            holder.type.setPadding(10,0, 0, 0);
                            holder.checkImg.setVisibility(ImageView.VISIBLE);

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
>

  <ImageView 
   android:id="@+id/list_background"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:background="@drawable/price_list_background"
  /> 
    <CheckBox android:id="@+id/checkBox" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_alignParentLeft="true"
    android:visibility="gone">
    </CheckBox>

  <ImageView 
   android:id="@+id/img_pol"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:background="@drawable/pol_icon_tag"
   android:layout_centerVertical="true"
   android:layout_marginLeft="5dp"  
  /> 

  <TextView 
   android:id="@+id/txt_name"
   android:layout_width="wrap_content"
   android:layout_height="15dp"
   android:textSize="16dp"
   android:textColor="#000000"
   android:layout_marginTop="5dp"
   android:layout_marginLeft="35dp"
  />
  <TextView 
   android:id="@+id/txt_type"
   android:layout_width="200dp"
   android:layout_height="13dp"
   android:textSize="12dp"
   android:textColor="#464647"
   android:layout_marginTop="35dp"
   android:layout_marginLeft="35dp"
  />
  <TextView 
   android:id="@+id/txt_real_price"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="12dp"
   android:textColor="#464647"
   android:layout_marginTop="35dp"
   android:layout_marginLeft="90dp"
  />
  <TextView 
   android:id="@+id/txt_offer_price"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="16dp"
   android:textColor="#464647"
   android:layout_marginTop="31dp"
   android:layout_marginLeft="190dp"
  />

  <TextView 
   android:id="@+id/txt_total"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="15dp"
   android:textColor="#464647"
   android:layout_centerVertical="true"
   android:layout_marginLeft="100dp"
   android:text="Total"
   android:visibility="gone"
  />
  <TextView 
   android:id="@+id/txt_total_price"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="16dp"
   android:textColor="#464647"
   android:layout_centerVertical="true"
   android:layout_marginLeft="230dp"
   android:text="kr. 222.22"
   android:visibility="gone"
  />


  </RelativeLayout>

1 个答案:

答案 0 :(得分:2)

您是否考虑使用页脚而不是将最后一项放在ListView中?

您所做的是,在设置ListView的适配器之前,您需要为页脚布局(或者只是TextView,如果这就是您需要的全部内容)充气。存储对它的引用,然后将其添加到ListView:

TextView myFooter = new TextView( context );
myListView.addFooterView( myFooter );

然后,当您向列表中添加项目或需要进行计算时,您只需计算并设置myFooter的文本。

myFooter.setText( myCalculatedValue );

设置页脚文本必须在UI线程上进行,因此如果您使用后台线程或AsyncTask添加到列表视图中,请确保将内容更新到正确的位置。