1

我想获取getView自定义列表视图的总计数。但要显示在不同的布局。这是我的onCreatedView。我不知道如何膨胀布局。感谢你的帮助。获取自定义列表视图中的总行数Android

private static ListView addDropListView = null; 
private TransactionAddDropAdapter addDropAdapter = null; 

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 

fragmentPendingTrades = inflater.inflate(R.layout.fragment_transactions_pending, container, false); 
pendingTradesView = inflater; 

return fragmentPendingTrades; 
} 

public void onViewCreated(final View view, final Bundle savedInstanceState) { 

this.addDropListView = (ListView) view.findViewById(R.id.transactions_pending_transactionsListView); 
this.addDropAdapter = new TransactionAddDropAdapter(pendingTradesView); 
this.addDropListView.setAdapter(this.addDropAdapter); 
this.emptyTransationsContainer = view.findViewById(R.id.transactions_pending_transactions_emptyContainer); 



TextView getTotalCount = (TextView) view.findViewById(R.id.transactions_pending_TransactionsAddDropCount); 

getTotalCount.setText(""+addDropListView.getCount()); 
} 

这里是我的Holderview是得到getView

public class TransactionAddDropAdapter extends BaseAdapter { 

    private LayoutInflater inflater = null; 
    private List<TransactionAddDrop> addDropList = new ArrayList<TransactionAddDrop>(); 

    public TransactionAddDropAdapter(LayoutInflater inflater) { 
     this.inflater = inflater; 
    } 

    public void setAddDropList(List<TransactionAddDrop> addDropList) { 
     clearAddDropList(); 

     for (TransactionAddDrop ad : addDropList) { 
      if (ad.isStateApprove()) { 
       this.addDropApprovalsList.add(ad); 
      } else { 
       this.addDropList.add(ad); 
      } 
     } 
    } 

    public void clearAddDropList() { 
     this.addDropList.clear(); 
     this.addDropApprovalsList.clear(); 
    } 

    @Override 
    public int getCount() { 
     int size = this.addDropList.size(); 

     if (this.addDropApprovalsList.size() > 0) { 
      size += 1; 
     } 

     return size; 
    } 

    @Override 
    public Object getItem(int position) { 
     try { 
      if (this.addDropList == null) { 
       return null; 
      } else if (position < addDropList.size()) { 
       return this.addDropList.get(position); 
      } else { 
       return this.addDropApprovalsList; 
      } 
     } catch (Exception e) { 
      return null; 
     } 
    } 

    @Override 
    public long getItemId(int arg0) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

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

     final TransactionAddDrop addDropData = this.addDropList.get(position); 



     TransactionAddDropViewHolder holder = null; 
     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.fragment_pending_transaction_list_item, null); 
      holder = new TransactionAddDropViewHolder(); 

      holder.withdrawButton = convertView.findViewById(R.id.pendingTransactionItem_withdrawButton); 

      holder.addContainer = (LinearLayout) convertView.findViewById(R.id.pendingTransactionItem_addContainer); 
      holder.dropContainer = (LinearLayout) convertView.findViewById(R.id.pendingTransactionItem_dropContainer); 
      holder.rootView = convertView.findViewById(R.id.swipeRight); 
      holder.swipeButtons(); 
      convertView.setTag(holder); 
     } else { 
      holder = (TransactionAddDropViewHolder) convertView.getTag(); 
      holder.swipeButtons(); 
     } 
} 
+0

首先,它看起来像你有“应该”编译的代码。我假设它显示了不正确的行数,对吧?如果是这样,它显示了什么,你期望什么?其次,你在'getCount'方法中试图通过在大小上加1来做什么? – 2013-04-26 12:15:05

+0

嗨史蒂文,其编译正确。我得到正确的行数。我只是试图显示顶部标题部分中的总行数。无视添加一个大小我不使用任何地方。 – dhiku 2013-04-26 13:45:55

+0

那么现在,它在做什么?显示“0”?没有?其他号码? – 2013-04-26 14:09:39

回答

1

好吧,我 “觉得” 我知道是怎么回事。您设置您的ListView并添加其TransactionAddDropAdapter,然后设置项目的总量。

this.addDropListView = (ListView) view.findViewById(R.id.transactions_pending_transactionsListView); 
this.addDropAdapter = new TransactionAddDropAdapter(pendingTradesView); 
this.addDropListView.setAdapter(this.addDropAdapter); 

TextView getTotalCount = (TextView) view.findViewById(R.id.transactions_pending_TransactionsAddDropCount); 
getTotalCount.setText(""+addDropListView.getCount()); 

然而,在这一点上,你有没有叫上addDropAdaptersetAddDropList(List<TransactionAddDrop> addDropList),所以addDropListgetCount()仍然是一个空数组,所以getCount() == 0,这就是为什么你看到0被显示。

因此,您需要找到您拨打addDropAdapter.setAddDropList()的地方,然后立即致电getTotalCount.setText(""+addDropListView.getCount());以更新总行数。

+0

嗨史蒂文,感谢您的帮助队友..它的工作。看起来我需要在SetAddDropList之后的更新显示中添加。谢谢。 – dhiku 2013-04-26 15:19:14

+0

**编辑**真棒:) – 2013-04-26 15:23:12