Android 获取自定义Listview中的行总数

Android 获取自定义Listview中的行总数,android,android-layout,listview,android-listview,android-custom-view,Android,Android Layout,Listview,Android Listview,Android Custom View,我正在尝试获取getView自定义listview的总计数。但要在不同的布局中显示。这是我的onCreatedView。我不知道如何扩大布局。谢谢你的帮助 private static ListView addDropListView = null; private TransactionAddDropAdapter addDropAdapter = null; public View onCreateView(LayoutInflater inflater, ViewGroup co

我正在尝试获取getView自定义listview的总计数。但要在不同的布局中显示。这是我的onCreatedView。我不知道如何扩大布局。谢谢你的帮助

    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(); 
        }
}
公共类TransactionAddDropAdapter扩展BaseAdapter{
专用充气机=空;
私有列表addDropList=新的ArrayList();
公共事务ADDROPAdapter(布局充气机){
这个。充气机=充气机;
}
公共void setAddDropList(列表addDropList){
clearAddDropList();
for(TransactionAddDrop ad:addDropList){
如果(ad.isStateApprove()){
此.addDropApprovalList.add(ad);
}否则{
this.addDropList.add(ad);
}
}
}
公共无效clearAddDropList(){
this.addDropList.clear();
此.addDropApprovalList.clear()文件;
}
@凌驾
public int getCount(){
int size=this.addDropList.size();
if(this.addDropApprovalList.size()>0){
大小+=1;
}
返回大小;
}
@凌驾
公共对象getItem(int位置){
试一试{
if(this.addDropList==null){
返回null;
}else if(位置
好的,我“认为”我知道这里发生了什么。您可以设置您的
列表视图
,并添加其
事务AddDropAdapter
,然后设置项目总数

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());
但是,此时,您还没有在
addDropAdapter
上调用
setAddDropList(List addDropList)
,因此
getCount()
中的
addDropList
仍然是一个空数组,因此
getCount()==0
,这就是您看到显示0的原因

因此,您需要找到调用
addDropAdapter.setAddDropList()
,然后立即调用
getTotalCount.setText(“+addDropListView.getCount());
,以更新总行数。

好的,我“认为”我知道这里发生了什么。您可以设置您的
列表视图
,并添加其
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());
但是,此时,您还没有在
addDropAdapter
上调用
setAddDropList(List addDropList)
,因此
getCount()
中的
addDropList
仍然是一个空数组,因此
getCount()==0
,这就是您看到显示0的原因


因此,您需要找到调用
addDropAdapter.setAddDropList()
的位置,然后立即调用
getTotalCount.setText(“+addDropListView.getCount());
以更新总行数。

首先,您似乎有“应该”的代码编译。我假设它显示的行数不正确,对吗?如果是这样,它显示的是什么,您期望的是什么?其次,您在
getCount
方法中试图通过将一个添加到大小来做什么?嗨,Steven,它的编译正确。我得到的行数正确。我只是尝试显示总nu顶部标题部分中的行数。忽略向大小添加一行。我不在任何地方使用它。那么现在,它在做什么?显示“0”?什么都没有?其他数字?它只是显示0。首先,看起来您有“应该”的代码编译。我假设它显示的行数不正确,对吗?如果是这样,它显示的是什么,您期望的是什么?其次,您在
getCount
方法中试图通过将一个添加到大小来做什么?嗨,Steven,它的编译正确。我得到的行数正确。我只是尝试显示总nu顶部标题部分中的行数。忽略向大小中添加一行,我不会在任何地方使用它。那么现在,它在做什么?显示“0”?没什么?其他号码?它只是显示0。嗨,史蒂文,谢谢你的帮助。它工作了。看起来我需要在SetAddDropList之后添加更新显示。谢谢。嗨,史蒂文,谢谢你的帮助。它工作了。看起来我需要在SetAddDropList之后添加更新显示。谢谢。