Android 获取自定义Listview中的行总数
我正在尝试获取getView自定义listview的总计数。但要在不同的布局中显示。这是我的onCreatedView。我不知道如何扩大布局。谢谢你的帮助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
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之后添加更新显示。谢谢。