BaseAdapter位置问题(仅0-4)

时间:2015-06-28 16:49:59

标签: java android baseadapter

我试图制作自己的自定义适配器,但我的位置有些问题。运行此代码后,我有奇数输出。在我的列表中,我有30个元素,但我的位置仅从0到4,打印的元素数是15而不是30.这段代码有什么问题?我查了一切!

所以我展示了我遇到这个问题的地方

Log.d(TAG,String.valueOf(position)); //0,1,2,3,4,0,1,2,3,4....0,1,2,3,4
Log.d(TAG, String.valueOf(gitRepositoryItemList.size())); //30 elements
像这样。 第一行给出15个输出,值为0到4。 第二个输出结果给出了30。 WTF!?!?!?! 这是代码:

public class GitCustomAdapter extends BaseAdapter{

    public static final String TAG = GitCustomAdapter.class.getSimpleName();
    private LayoutInflater inflater;
    private List<GitRepositoryItem> gitRepositoryItemList;
    //ImageLoader imageLoader = VolleySingleton.getInstance(mContext).getImageLoader();

    public GitCustomAdapter(Context mContext, List<GitRepositoryItem> gitRepositoryItemsList) {
        this.gitRepositoryItemList = gitRepositoryItemsList;
        inflater = LayoutInflater.from(mContext);
    }

    @Override
    public int getCount() {
        return gitRepositoryItemList.size();
    }

    @Override
    public GitRepositoryItem getItem(int position) {
        return gitRepositoryItemList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
        //this method executes 15 times only while it should be executed 30 times
        if (convertView == null){
            convertView = inflater.inflate(R.layout.list_item,null);
        }
        Log.d(TAG,String.valueOf(position)); //0,1,2,3,4,0,1,2,3,4....0,1,2,3,4
        Log.d(TAG, String.valueOf(gitRepositoryItemList.size())); //30 elements
        return convertView;
    }
}

此外,您可以在此处查看我的输出:

http://pastebin.com/BHAvtA38

0 个答案:

没有答案