Android 列表视图一次加载特定数量

Android 列表视图一次加载特定数量,android,facebook,listview,android-fragments,Android,Facebook,Listview,Android Fragments,我的listview有634个项目,但我想在用户向下滚动加载更多项目时,以15个为一组加载它们 Im使用片段和listview,而不是listview片段 获取facebook好友的代码片段(在我的示例中为634) public void getFriends(会话) { 请求friendsRequest=createRequest(会话); friendsRequest.setCallback(new Request.Callback()){ @凌驾 未完成公共无效(响应) { 日志v(标记“

我的listview有634个项目,但我想在用户向下滚动加载更多项目时,以15个为一组加载它们

Im使用片段和listview,而不是listview片段

获取facebook好友的代码片段(在我的示例中为634)

public void getFriends(会话)
{
请求friendsRequest=createRequest(会话);
friendsRequest.setCallback(new Request.Callback()){
@凌驾
未完成公共无效(响应)
{
日志v(标记“已完成”);
i=新的ArrayList();
对于(GraphUser g:installedUsers(getResults(response)))
{
InvitesModel InvitesModel=新建InvitesModel();
invitesModel.setFname(g.getFirstName());
invitesModel.setLname(g.getLastName());
invitesModel.setId(g.getId());
i、 添加(受邀者模型);
Collections.sort(i,新的Comparator(){
@凌驾
公共int比较(InvitesModel InvitesModel、InvitesModel invitesModel2){
InvitesModel i1=InvitesModel;
InvitesModel i2=invitesModel2;
返回(i1.getFname()+“”+i1.getLname()).compareToIgnoreCase(i2.getFname()+“”+i2.getLname());
}
});
}
InvitesAdapter InvitesAdapter=InvitesAdapter=newinvitesadapter(getActivity(),i);
for(InvitesModel邀请函:i)
{
invitesAdapter.add(邀请);
}
Log.v(标记“fb friends”+i.size());
低压设置适配器(受邀适配器);
Log.v(标记,“列表大小”+lv.getCount());
Log.v(标记“适配器大小”+invitesAdapter.getCount());
}
});
friendsRequest.executeAsync();
}
我的适配器

public class InvitesAdapter extends ArrayAdapter<InvitesModel> {

    private final Context context;
    private final List<InvitesModel> user;
    private String TAG="InvitesAdapter";

    public InvitesAdapter(Context context,List<InvitesModel>users) {
        super(context, R.layout.invites_row);
        this.context = context;
        this.user=users;
        Log.v(TAG,"AdapterCalled");
    }

    static class ViewHolder {
        protected RobotoLight text;
        protected RoundedImageView pic;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null)
        {
            viewHolder = new ViewHolder();
            LayoutInflater inflater = LayoutInflater.from(getContext());
            convertView= inflater.inflate(R.layout.invites_row, null);
            viewHolder.text = (RobotoLight) convertView.findViewById(R.id.invites_row_name);
            viewHolder.pic=(RoundedImageView) convertView.findViewById(R.id.invites_row_pic);
            convertView.setTag(viewHolder);
        }
        else
        {
        viewHolder = (ViewHolder) convertView.getTag();
        }
        try
        {
            UrlImageViewHelper.setUrlDrawable(viewHolder.pic, "http://graph.facebook.com/" + user.get(position).getId() + "/picture?width=200&height=200", R.drawable.profle);
        }
        catch (Exception e)
        {
            Log.e(TAG, e.getLocalizedMessage());
            viewHolder.pic.setImageResource(R.drawable.profle);
        }

        viewHolder.text.setText(user.get(position).getFname()+" "+user.get(position).getLname());

        return convertView;
    }

}
公共类InvitesAdapter扩展了ArrayAdapter{
私人最终语境;
私人最终名单用户;
私有字符串TAG=“InvitesAdapter”;
public InvitedAdapter(上下文,Listusers){
super(上下文,右布局,右行);
this.context=上下文;
this.user=用户;
Log.v(标签“适配器调用”);
}
静态类视窗夹{
受保护的机器人光文本;
受保护的圆形图像视图pic;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
持票人持票人;
if(convertView==null)
{
viewHolder=新的viewHolder();
LayoutInflater充气器=LayoutInflater.from(getContext());
convertView=充气机。充气(R.LAYOU row,null);
viewHolder.text=(RobotoLight)convertView.findViewById(R.id.invests\u row\u name);
viewHolder.pic=(RoundedImageView)convertView.findViewById(R.id.invests\u row\u pic);
convertView.setTag(viewHolder);
}
其他的
{
viewHolder=(viewHolder)convertView.getTag();
}
尝试
{
UrlImageViewHelper.setUrlDrawable(viewHolder.pic)http://graph.facebook.com/“+user.get(position.getId()+”/picture?宽度=200,高度=200”,R.drawable.profle);
}
捕获(例外e)
{
Log.e(TAG,e.getLocalizedMessage());
viewHolder.pic.setImageResource(R.drawable.profle);
}
viewHolder.text.setText(user.get(position).getFname()+“”+user.get(position.getLname());
返回视图;
}
}

如果用户一次只能在屏幕上看到15个项目,那么您为什么要一次加载30个项目。将原始帖子更改为15个。您好,数字无关紧要。listview仅加载屏幕上可见的项目数,可能因设备而异。但当您向上滚动列表时,它会为您创建下一个项目。但是你可以管理listview的效率,请找到链接。如果答案对你有帮助,请把它标记为可接受。谢谢ashish为我指出了正确的方向,但我得到了67帧跳过编舞错误。UI线程做了太多的工作。任何帮助都将不胜感激。
public class InvitesAdapter extends ArrayAdapter<InvitesModel> {

    private final Context context;
    private final List<InvitesModel> user;
    private String TAG="InvitesAdapter";

    public InvitesAdapter(Context context,List<InvitesModel>users) {
        super(context, R.layout.invites_row);
        this.context = context;
        this.user=users;
        Log.v(TAG,"AdapterCalled");
    }

    static class ViewHolder {
        protected RobotoLight text;
        protected RoundedImageView pic;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null)
        {
            viewHolder = new ViewHolder();
            LayoutInflater inflater = LayoutInflater.from(getContext());
            convertView= inflater.inflate(R.layout.invites_row, null);
            viewHolder.text = (RobotoLight) convertView.findViewById(R.id.invites_row_name);
            viewHolder.pic=(RoundedImageView) convertView.findViewById(R.id.invites_row_pic);
            convertView.setTag(viewHolder);
        }
        else
        {
        viewHolder = (ViewHolder) convertView.getTag();
        }
        try
        {
            UrlImageViewHelper.setUrlDrawable(viewHolder.pic, "http://graph.facebook.com/" + user.get(position).getId() + "/picture?width=200&height=200", R.drawable.profle);
        }
        catch (Exception e)
        {
            Log.e(TAG, e.getLocalizedMessage());
            viewHolder.pic.setImageResource(R.drawable.profle);
        }

        viewHolder.text.setText(user.get(position).getFname()+" "+user.get(position).getLname());

        return convertView;
    }

}